워드프레스의 각 카테고리에서 하나의 게시물만 받는 방법
나는 뉴스라는 카테고리를 가지고 있고 그 안에 많은 하위 카테고리가 있다.각 서브카테고리(카테고리 제목, 투고 제목, 첨부 이미지 포함)에서 1개의 투고(최신)만 받고 싶습니다.친구들의 조언이 있나요?
<?php
$news_cat_ID = get_cat_ID( 'News' );
$news_cats = get_categories( "parent=$news_cat_ID" );
$news_query = new WP_Query;
foreach ( $news_cats as $news_cat ) :
$news_query->query( array(
'cat' => $news_cat->term_id,
'posts_per_page' => 1,
'no_found_rows' => true,
'ignore_sticky_posts' => true,
));
?>
<h2><?php echo esc_html( $news_cat->name ) ?></h2>
<?php while ( $news_query->have_posts() ) : $news_query->the_post() ?>
<div class="post">
<?php the_title() ?>
<!-- do whatever you else you want that you can do in a normal loop -->
</div>
<?php endwhile ?>
<?php endforeach ?>
몇 시간 후 전 세계 동료 덕분에 메인 쿼리를 수정할 수 있게 되었습니다.템플릿을 검색하여 새로운 쿼리와 루프를 생성할 필요도 없습니다.
// My function to modify the main query object
function grouped_by_taxonomy_main_query( $query ) {
if ( $query->is_home() && $query->is_main_query() ) { // Run only on the homepage
$post_ids = array();
$terms = get_terms('formato');
foreach ( $terms as $term ) {
$post_ids = array_merge( $post_ids, get_posts( array(
'posts_per_page' => 4, // as you wish...
'post_type' => 'video', // If needed... Default is posts
'fields' => 'ids', // we only want the ids to use later in 'post__in'
'tax_query' => array( array( 'taxonomy' => $term->taxonomy, 'field' => 'term_id', 'terms' => $term->term_id, )))) // getting posts in the current term
);
}
$query->query_vars['post_type'] = 'video'; // Again, if needed... Default is posts
$query->query_vars['posts_per_page'] = 16; // If needed...
$query->query_vars['post__in'] = $post_ids; // Filtering with the post ids we've obtained above
$query->query_vars['orderby'] = 'post__in'; // Here we keep the order we generated in the terms loop
$query->query_vars['ignore_sticky_posts'] = 1; // If you dont want your sticky posts to change the order
}
}
// Hook my above function to the pre_get_posts action
add_action( 'pre_get_posts', 'grouped_by_taxonomy_main_query' );
언급URL : https://stackoverflow.com/questions/3264323/how-do-i-get-only-1-post-from-each-category-in-wordpress
'programing' 카테고리의 다른 글
Oracle에서 시퀀스를 리셋하려면 어떻게 해야 합니까? (0) | 2023.02.23 |
---|---|
찾을 수 없는 아이콘 리액션-대박 (0) | 2023.02.23 |
일치 문제를 사용한 regex에서의 Yup 유효성 검사 (0) | 2023.02.23 |
Retrofit을 사용한 동적 키 Json 문자열 해석 (0) | 2023.02.23 |
Docker 컨테이너의 Apache, PHP, WordPress 캐시 문제 (0) | 2023.02.23 |