J'essaie de faire une liste de catégories liées à une taxonomie personnalisée, mais en utilisant l'image sélectionnée du premier message de chaque catégorie.
Obtenir les catégories était assez simple, mais lorsque j'essaie de demander la vignette du message, les détails du message le plus récent de la première catégorie ont été affichés.
J'exécute ceci en dehors de The Loop, si cela fait une différence;
<ul class="product-categories">
<?php
$categories = get_terms(
array(
'produkter'
),
array(
'hide_empty' => false,
)
);
foreach( $categories AS $cat )
{
$taxonomy = new WP_Query( array( 'posts_per_page' => 1, 'tax_query' => array( 'taxonomy' => 'produkter', 'terms' => $cat->slug ) ) );
while ( $taxonomy->have_posts() )
{
$taxonomy->the_post();
?>
<li class="produkter">
<div class="product-image">
<a href="<?php bloginfo( 'wpurl' ); ?>/produkt/">
<?php the_post_thumbnail( "product-small" ); ?>
</a>
</div>
<a class="product-title" href="<?php bloginfo( 'wpurl' ); ?>/produkt/"><?php echo $cat->name ?></a>
</li>
<?php
}
}
?>
</ul>
tax_query prend un tableau de tableaux d'arguments de requête de taxe (il faut un tableau de tableaux) mais vous n'utilisez qu'un seul tableau. Le code correct est le suivant.
<ul class="product-categories">
<?php
$categories = get_terms(
array(
'produkter'
),
array(
'hide_empty' => false,
)
);
foreach( $categories AS $cat )
{
$taxonomy = new WP_Query( array( 'posts_per_page' => 1, 'post_type' =>'book', 'tax_query' => array( array('taxonomy' => 'produkter','field' => 'slug', 'terms' => $cat->slug ) )) );
while ( $taxonomy->have_posts() )
{
$taxonomy->the_post();
?>
<li class="produkter">
<div class="product-image">
<a href="<?php bloginfo( 'wpurl' ); ?>/produkt/">
<?php the_post_thumbnail( "product-small" ); ?>
</a>
</div>
<a class="product-title" href="<?php bloginfo( 'wpurl' ); ?>/produkt/"><?php echo $cat->name ?></a>
</li>
<?php
}
}
?>
</ul>
Pour plus d'informations, visitez cette page .