Websourcing.fr

Websourcing.fr » ActualitĂ©s, Web, Logiciels et Fun

Image pour [Wordpress] Comment rĂ©cupĂ©rer les tags d’une catĂ©gorie?

[Wordpress] Comment rĂ©cupĂ©rer les tags d’une catĂ©gorie?

S’il y a bien une chose qui est pĂ©nible avec Wordpress, c’est d’avoir Ă  retaper systĂ©matiquement tous les tags pour des billets qui en gĂ©nĂ©ral se ressemblent.

Même si certaines différences peuvent apparaitre, il serait utile pour notre productivité de récupérer automatiquement les tags les plus courants.

Au détour de mes flux je suis tombé sur une solution qui pourrait bien avoir de multiples applications, dont celle décrite ci-dessus.

Sans plus attendre le code:

function get_category_tags($args) {
	global $wpdb;
	$tags = $wpdb->get_results
	("
		SELECT DISTINCT terms2.term_id as tag_id, terms2.name as tag_name, null as tag_link
		FROM
			wp_posts as p1
			LEFT JOIN wp_term_relationships as r1 ON p1.ID = r1.object_ID
			LEFT JOIN wp_term_taxonomy as t1 ON r1.term_taxonomy_id = t1.term_taxonomy_id
			LEFT JOIN wp_terms as terms1 ON t1.term_id = terms1.term_id,

			wp_posts as p2
			LEFT JOIN wp_term_relationships as r2 ON p2.ID = r2.object_ID
			LEFT JOIN wp_term_taxonomy as t2 ON r2.term_taxonomy_id = t2.term_taxonomy_id
			LEFT JOIN wp_terms as terms2 ON t2.term_id = terms2.term_id
		WHERE
			t1.taxonomy = 'category' AND p1.post_status = 'publish' AND terms1.term_id IN (".$args['categories'].") AND
			t2.taxonomy = 'post_tag' AND p2.post_status = 'publish'
			AND p1.ID = p2.ID
		ORDER by tag_name
	");
	$count = 0;
	foreach ($tags as $tag) {
		$tags[$count]->tag_link = get_tag_link($tag->tag_id);
		$count++;
	}
	return $tags;
}

Globalement, la fonction va retourner un tableau contenant tous les tags utilisés pour les catégories passées en paramètre.

Pour l’utiliser il vous suffit de coller ce code dans le fichier function.php et d’invoquer la fonction get_category_tags().

$args = array('categories' => '12,13,14'); // les chiffres correspondent aux IDs de vos catégories
$tags = get_category_tags($args);

Pour rĂ©cupĂ©rer les identifiants des catĂ©gories, il vous suffit d’aller dans le menu Articles -> CatĂ©gories et de passer votre souris sur le titre de la catĂ©gorie. Il vous suffit alors de trouver le chiffre suivant le paramètre cat_ID dans l’url.

wordpress-categorie-id-dans-url

Je pense tenter d’en faire autre chose, comme des nuages de tags par catĂ©gories.

crédits: wprecipes


Cet article vous a plu ?

Commenter Laissez un commentaire | Recevez les mises à jour Souscrivez au flux RSS | Partager : Twitter AddInto Fuzz del.icio.us Wikio FR Blogonet
Websourcing.fr - Tous droits réservés. Reproduction interdite sans accord préalable.
  1. Répondre Citer #1 par Aragornis le 14 octobre 2009 - 22:57

    Un peu de chippotage sur le code, mais la variable count ne sert Ă  rien. Il suffit de faire

    $tag->tag_link = get_tag_link($tag->tag_id);

    Mais sinon, c’est bien fait ;)

    • Répondre Citer #2 par Lionel Roux le 15 octobre 2009 - 18:59

      hĂ©hĂ© je ne corrige jamais ce genre de truc. Je me demande mĂŞme si ce n’est pas optimisĂ© Ă  la volĂ©e.

      Mais bon dans l’absolue tu as raison.

  2. Répondre Citer #3 par Jean-Baptiste Jung le 20 octobre 2009 - 14:49

    Tu crois pas qu’un ptit lien vers la source http://www.wprecipes.com/wordpress-trick-function-to-get-tags-related-to-category aurait Ă©tĂ© le bienvenu? ;)

    • Répondre Citer #4 par Lionel Roux le 20 octobre 2009 - 16:38

      Figures toi que je l’ai lu sur mon Google Reader, copiĂ© dans un bloc note comme je fais d’habitude, avec le lien feeds.google… qui ne me redirigeait plus vers le site source.

      C’est pas mon genre de pas mettre les sources, au contraire, je me fais pomper assez de truc comme ça. Ya qu’Ă  regarder tous mes autres billets. Je corrige ça tout de suite. Et merci pour le lien.

  3. Répondre Citer #5 par Jean-Baptiste Jung le 20 octobre 2009 - 17:11

    Y’a pas de soucis, ça nous arrive Ă  tous :)
    Bonne continuation!

  4. Répondre Citer #6 par jean le 24 octobre 2009 - 15:55

    Merci pour le code , j’avoue que cela peut ĂŞtre très pratique lorsque l’on a plus d’une centaine d’article a se taper :)

(Ne sera pas publié)
  1. Sur Les tweets qui mentionnent [Wordpress] Comment récupérer les tags d’une catégorie? - Websourcing.fr -- Topsy.com le 14 octobre 2009 - 15:42

    [...] Ce billet était mentionné sur Twitter par Simon Tripnaux, Lionel Roux. Lionel Roux a dit: Sur Websourcing.fr: [Wordpress] Comment récupérer les tags d’une catégorie?: S’il y a .. http://bit.ly/gqVQp [...]