Je construis une page d'aperçu des catégories et j'utilise ce code:
<?php
$limit = 999;
$counter = 0;
$categories = get_categories();
foreach ($categories as $category):
if ($counter < $limit) {
$args = array(
'category__in' => array(
$category->term_id
),
'caller_get_posts' => 1
);
$posts = get_posts($args);
if ($posts) {
echo '<div class="category">';
echo '<a href="' . get_category_link($category->term_id) . '" title="' . sprintf(__("View all posts in %s"), $category->name) . '" ' . '>';
echo '<h3>' . $category->name . '</h3>';
echo '</a>';
echo '</div>';
}
}
$counter++;
endforeach;
?>
Mais comment insérer dans l'écho que l'image sélectionnée du dernier message de cette catégorie sera affichée.
J'ai utilisé Mat son code et corrigé un problème dupliqué.
Le code qui fonctionne comme un charme :
<?php
$limit = 999;
$counter = 0;
$categories = get_categories();
foreach ($categories as $category):
if ($counter < $limit) {
$args = array(
'posts_per_page' => 1,
'cat' => $category->cat_ID,
'ignore_sticky_posts' => 1
);
$posts = get_posts($args);
if ($posts) {
echo '<div class="category">';
while( have_posts() ) : the_post();
the_post_thumbnail();
endwhile;
echo '<a href="' . get_category_link($category->term_id) . '" ' . '>';
echo '<h3>' . $category->name . '</h3>';
echo '</a>';
echo '</div>';
}
}
$counter++;
endforeach;
?>
Cela devrait marcher. J'ai légèrement modifié votre $args
et entouré votre code renvoyé dans la boucle while(have_posts()) : the_post();
, puis j'ai ajouté la fonction the_post_thumbnail()
et, enfin, la wp_query_reset();
en bas:
<?php
$limit = 999;
$counter = 0;
$categories = get_categories();
foreach ( $categories as $category ):
if ( $counter < $limit ) {
$args = array(
'posts_per_page' => 1,
'cat' => $category->cat_ID,
'ignore_sticky_posts' => 1
);
$posts = get_posts( $args );
while( have_posts() ) : the_post();
echo '<div class="category">';
the_post_thumbnail();
echo '<a href="' . get_category_link($category->term_id) . '" title="' . sprintf(__("View all posts in %s"), $category->name) . '" ' . '>';
echo '<h3>' . $category->name . '</h3>';
echo '</a>';
echo '</div>';
endwhile;
}
$counter++;
endforeach;
wp_query_reset();
?>
Ps. caller_get_posts
est déconseillé depuis la version 3.1! Utilisez ignore_sticky_posts
à la place de votre $args