J'ai un site Web WordPress qui a une catégorie avec deux sous-catégories.
Maintenant, comment est-il possible d'afficher le contenu (les éléments/contenu de sous-catégories) sur la catégorie parente?
Une possibilité:
<?php
$sub_cats = get_categories('parent=' . get_query_var('cat'));
if( $sub_cats ) :
foreach( $sub_cats as $sub_cat ) :
$sub_query = new WP_Query( array(
'category__in' => array( $sub_cat->term_id ),
'posts_per_page' => -1)
);
if ( $sub_query->have_posts() ) :
while( $sub_query->have_posts() ) : $sub_query->the_post();
//your output//
endwhile;
endif;
endforeach;
endif;
?>
http://codex.wordpress.org/Function_Reference/get_categorieshttp://codex.wordpress.org/Class_Reference/WP_Query
$cat = get_query_var( 'cat' );
$args = array(
'post_status' => 'publish',
'tax_query' => array(
array(
'taxonomy' => 'category', //may be categories, I never remember, try both
'field' => 'slug', //may need to use ID, depends on output
'terms' => $cat
//children are included by default
)
)
);
$posts = new WP_Query( $args );
Cela vous donnera un tableau d'objets post. Vous pouvez utiliser setup_postdata()
pour insérer cela dans une boucle si vous le souhaitez. Ce code sera extensible si vous ajoutez des sous-catégories, ils seront également interrogés.
Docs: WP_Query
, setup_postdata()
<?php
$cat = get_query_var( 'cat' );
$args = array(
'post_status' => 'publish',
'tax_query' => array(
array(
'taxonomy' => 'category', //may be categories, I never remember, try both
'field' => 'id', //may need to use slug, depends on output
'terms' => $cat
//children are included by default
)
)
);
$my_posts = new WP_Query( $args );
?>
<?php if ( $my_posts->have_posts()) : while ( $my_posts->have_posts() ) : $my_posts->the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<div class="entryCategory">
<a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_post_thumbnail( 'thumbnail', array( 'class' => 'alignright' ) ); ?></a>
</div>