【问题标题】:why page 2 not working in wp query为什么第 2 页在 wp 查询中不起作用
【发布时间】:2017-04-02 07:01:58
【问题描述】:

为什么http://localhost/wp/?paged=2 和更老的版本不能在 wp_query 中工作?

我有来自“自定义帖子类型”的电影和系列超过 15 个帖子。 前端分为2页,但是当我按旧帖子时,页面仍然是第一页。

这是我的 index.php 循环代码:

<?php
$paged = ( get_query_var('page') ) ? get_query_var('page') : 1;
$query_args = array(
    'post_type' => array('post','series','movie'),
    'posts_per_page' => 10,
    'paged' => $paged
);
$the_query = new WP_Query( $query_args );
?>

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

    <h1><?php the_title();?></h1>

<?php endwhile; ?>
<div class="col-md-12">
    <?php if ($the_query->max_num_pages > 1) { // check if the max number of pages is greater than 1    ?>
        <nav class="prev-next-posts">
            <div class="prev-posts-link">
                <?php echo get_next_posts_link( 'Older Entries', $the_query->max_num_pages ); // display older posts link ?>
            </div>
            <div class="next-posts-link">
                <?php echo get_previous_posts_link( 'Newer Entries' ); // display newer posts link ?>
            </div>
        </nav>
    <?php } ?>
</div>
<?php wp_reset_postdata(); ?>
<?php else: ?>
    <article>
        <h1>Sorry...</h1>
        <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
    </article>
<?php endif; ?>

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    我找到了解决办法:

        add_filter( 'pre_get_posts', 'my_get_posts' );
    
        function my_get_posts( $query ) {
    
            if ( $query->is_main_query() &&  is_home()  ) {
                $query->set( 'post_type', array( 'post', 'movie', 'series' ) );
            }
            if ( $query->is_main_query() &&  is_category()  ) {
                $query->set( 'post_type', array( 'post', 'movie', 'series' ) );
            }
            if ( $query->is_main_query() &&  is_search()  ) {
                $query->set( 'post_type', array( 'post', 'movie', 'series' ) );
            }
            if ( $query->is_main_query() &&  is_tag()  ) {
                $query->set( 'post_type', array( 'post', 'movie', 'series' ) );
            }
            return $query;
        }
    

    此代码不会停止出现导航菜单

    【讨论】:

    • 只要我的答案不是正确的答案,您可能需要确认您的答案是正确的,所以将来如果有任何访客来您的问题,他可以得到解决方案轻松
    猜你喜欢
    • 2013-09-17
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 2013-12-03
    相关资源
    最近更新 更多