J'ai écrit mon WP_Query
personnalisé et utiliser la boucle pour afficher le contenu du message. J'utilise get_the_category()
pour afficher les catégories de publication actuelle et cela fonctionne bien. Maintenant, pour certains types de publication, il existe des taxonomies personnalisées au lieu de catégories.
Code pour obtenir les catégories :
$categories = get_the_category();
if(!empty($categories)){
foreach($categories as $index => $cat){
echo $cat->name;
}
}
Maintenant, je dois extraire toutes les taxonomies et les imprimer au format séparé par des virgules.
J'ai essayé ceci:
$taxonomies = get_the_taxonomies();
if(!empty($taxonomies)){
foreach($taxonomies as $taxonomy){
echo $taxonomy;
}
}
Cela fonctionne et montre dans ce format "Étiquette de taxonomie: Terme (hyperlien)". Si les termes sont plus d'un que cela ajoute "et" entre les termes. Je n'ai besoin que de termes et s'ils sont multiples, ils doivent être séparés par une virgule.
Je veux savoir :
regex
pour extraire de la valeur?Merci
Le premier problème avec votre code, je suppose, est que vous utilisez la fonction get_the_taxonomies
, qui va:
Récupérer toutes les taxonomies d'une publication avec juste les noms.
Donc, le résultat sera comme ça:
Array
(
[0] => category
[1] => post_tag
[2] => post_format
)
Et je suis à peu près sûr que vous souhaitiez que les termes attribués à un poste donné proviennent de toutes les taxonomies, et non des noms de taxonomies ...
Donc, très probablement, vous voulez faire quelque chose comme ça:
$terms = wp_get_object_terms( get_the_ID(), array_keys( get_the_taxonomies() ) );
foreach ( $terms as $i => $term ) {
echo ($i ? ', ' : '') . $term->name;
}
Et des réponses rapides à vos questions:
Jetez un coup d'oeil à ceux-ci:
$taxonomies = get_post_taxonomies( );
print_r( $taxonomies );
echo implode( $taxonomies, ', ' );