Fonction php de WordPress pour obtenir plusieurs catégories par nom de slug ?

Publié par Jean-Michel le

WordPress a une fonction intégrée pour récupérer l’identifiant de catégorie par slug (get_category_by_slug), mais il n’accepte qu’une seule valeur (une chaîne). Et si je voulais obtenir plusieurs identifiants de catégorie, comment pourrais-je lui passer un tableau ?

Voici ce que j’utilise maintenant

header.php

 $catObj = get_category_by_slug( 'slider' );
 //$termObj = get_term_by('slug', 'slider', 'my_custom_taxonomy')
 $catid = $catObj->term_id;

Solution n°1 trouvée

Voici une fonction d’insertion que vous pouvez utiliser dans votre functions.php. Il attend un tableau de slugs de catégorie ($catslugs). Il crée un tableau vide, qui est rempli par une boucle foreach utilisant get_category_by_slug. La boucle foreach parcourt chaque valeur du tableau jusqu’à ce qu’elle se termine. La fonction renvoie ensuite le tableau $catids pour votre utilisation ailleurs.

Lire également:  Sauvegarde WordPress

fonctions.php

function get_cats_by_slug($catslugs) {
    $catids = array();
    foreach($catslugs as $slug) {
        $catids[] = get_category_by_slug($slug)->term_id; //store the id of each slug in $catids
    }
    return $catids;
}

Voici comment vous l’utiliseriez dans votre header.php par exemple

header.php

$catslugs = array('uncategorized','slider','news','featured');
$catids = get_cats_by_slug($catslugs);

Nous créons un tableau ($catslugs) avec les slugs de catégorie que nous souhaitons récupérer, puis nous créons une variable pour stocker la valeur renvoyée ($catids) de notre fonction. La fonction est exécutée et $catids contient maintenant un tableau d’identifiants de catégorie à utiliser ailleurs.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *