WordPress : Afficher uniquement les catégories cochées de la taxonomie personnalisée

Publié par Jean-Michel le

J’essaie d’afficher les catégories de noms d’une taxonomie personnalisée appelée standard_engine_specification sur une page de modèle. C’est ce que j’ai jusqu’à présent – il affiche toutes les catégories de la taxonomie au lieu de simplement afficher celles cochées dans le panneau d’administration.

<?php
/*variable to retrieve checked term*/

	$ses_terms = get_the_terms( $id, 'standard_engine_specification' );
		if( $ses_terms && !is_wp_error( $ses_terms ) ) {
		foreach( $ses_terms as $term ) {

			}
		}
		/*variable used to filter results*/
		$ses_args = array(
		'taxonomy'     => 'standard_engine_specification',
		'hierarchical' => true,
		'tax_query' => array(array(
			'taxonomy' => 'standard_engine_specification',
			'field' => 'slug',
			'terms' => array($term->slug),
			'operator' => 'IN'
		))
	);

?>
<ul>
<?php
/*output checked categories based on filter*/
foreach (get_categories($ses_args) as $category)
	{
		echo "<li>";
		echo $category->name;

		echo "</li>";

	}
?>
</ul>

J’ai à peu près Frankensteined cela à partir d’autres scripts que j’ai utilisés pour filtrer les types de publication, peut-être que quelqu’un qui sait ce qu’ils font peut me dire où et pourquoi je manque cela – j’ai mis quelques commentaires.

Solution n°1 trouvée

Ok trié. Je n’ai pas eu besoin d’utiliser un tax_query, j’ai essayé de faire la même chose que j’avais fait en appelant WooCommerce sur une page de modèle mais c’était exagéré, alors nous apprenons 🙂

<div class= »snippet » data-lang= »js » data-hide= »false » data-console= »true »>

<?php

$ses_terms = get_the_terms( $post->ID, 'standard_engine_specification' );
if( $ses_terms && !is_wp_error( $ses_terms ) ) {
	foreach( $ses_terms as $term ) {
		echo "<li>";
		echo $term->name;
		echo "</li>";
	}
}
?>
Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

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