programing

Word Press:$wp_query를 사용하여 카테고리별로 투고를 필터링하려면 어떻게 해야 합니까?

goodjava 2023. 3. 16. 21:27

Word Press:$wp_query를 사용하여 카테고리별로 투고를 필터링하려면 어떻게 해야 합니까?

WordPress에 커스텀 테마를 작성했습니다.첫 페이지에는 고정적인 선두 페이지가 있으며, 투고 페이지로서 [설정]> [읽기 설정]> [앞 페이지 표시]에 페이지가 설정되어 있지 않습니다.다만, 사이트내의 카테고리에 근거해 다른 정적 페이지에 투고를 표시하고 싶습니다.따라서 콘솔을 통해 게시물 인덱스 페이지를 선언하지 않습니다.그래서 $wp_query 함수를 사용합니다.

「애플」카테고리의 투고만을 표시하는 필터를 이 스크립트에 추가하려면 어떻게 해야 합니까(예를 들면).현재 이 스크립트는 카테고리에 관계없이 모든 투고를 표시합니다.

<?php
    $temp = $wp_query;
    $wp_query = null;
    $wp_query = new WP_Query();
    $wp_query->query('showposts=1' . '&paged='.$paged);
    while ($wp_query->have_posts()) : $wp_query->the_post();
?>

<h2><a href="<?php the_permalink(); ?>" title="Read"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php the_date(); ?>

<?php endwhile; ?>

<?php if ($paged > 1) { ?>
    <p><?php previous_posts_link('Previous page'); ?>
    <?php next_posts_link('Next page'); ?></p>
<?php } else { ?>
    <p><?php next_posts_link('Next page'); ?></p>
<?php } ?>

<?php wp_reset_postdata(); ?>

사용하셔야 합니다.category_name(스트링 - 카테고리 슬러그 사용) 또는cat(int - 카테고리 ID 사용), 카테고리별로 게시물을 가져오려면WP_Query::query().

다음은 예를 제시하겠습니다.

$category_name = 'apples'; //replace it with your category slug
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query();
$wp_query->query('showposts=1' . '&paged=' . $paged . '&category_name=' . $category_name);
//...
//...

이게 도움이 됐으면 좋겠네요!

첫 번째 php 블록을 삭제하고 이것으로 바꿉니다.

<?php
$args = array (
    'showposts' => '1',
    'category_name' => 'apples',
    'paged' => $paged
);
$the_query = new WP_Query( $args );

if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();
?>

상세한 것에 대하여는, https://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters 를 참조해 주세요.

언급URL : https://stackoverflow.com/questions/41886528/wordpress-how-to-filter-posts-by-category-using-wp-query