自定义帖子 wp_query 的分页

2024-05-10

<?php
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        $loop = new WP_Query(
            array(
                'post_type' => 'html5-blank',
                'posts_per_page' => 5,
                'paged'=>$paged
            )
        );
?>
<?php if ($loop->have_posts()): while ($loop->have_posts()) : $loop->the_post(); ?>      
 //Loop Code Here..
 <?php wp_reset_query(); ?> 
   <nav>
        <?php previous_posts_link( 'Newer posts &raquo;' ); ?>
        <?php next_posts_link('Older &raquo;') ?>
    </nav>
<?php endwhile; ?>
<?php else: ?>

我输入结果时下一页上的网址是:www.mywebsite.com/blog/page/2 正在运行。 但我无法显示分页链接。

哪里出了问题?

编辑:分页链接显示在page/2/但不在博客主页上。 为什么?


我建议使用 3 种方法使用自定义帖子 wp_query 进行分页。不幸的是,到目前为止,还没有很多关于这方面的好的信息,或者至少在某些情况下还不清楚。希望这有帮助!

请注意,您也确实将 wp_reset_postdata() 放在了错误的位置,但还需要更多才能使其正常工作。

选项 1 - 使用 max_num_pages 变量

<?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array( 
        'posts_per_page' => 1, 
        'paged' => $paged, 
        'post_type' => 'cpt_type'
    );
    $cpt_query = new WP_Query($args);
?>

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

    //Loop Code Here...

<?php endwhile; endif; ?>

<nav>
    <ul>
        <li><?php previous_posts_link( '&laquo; PREV', $cpt_query->max_num_pages) ?></li> 
        <li><?php next_posts_link( 'NEXT &raquo;', $cpt_query->max_num_pages) ?></li>
    </ul>
</nav>

你会在上面看到,格式略有不同previous_posts_link and next_posts_link现在可以访问max_num_pages多变的。访问时一定要使用自己的查询变量名max_num_pages。请注意,我使用 $cpt_query 因为这是我的查询示例的变量。

选项 2 - 暂时使用 $wp_query 变量进行循环查询

这是很多人推荐的,但要小心将 $wp_query 变量分配给临时变量并重新分配它,否则您会遇到各种麻烦。这就是为什么我推荐选项#1。如上所述CSS 技巧 http://css-tricks.com/snippets/wordpress/paginate-custom-post-types/,你可以这样做:

<?php 
  $temp = $wp_query; 
  $wp_query = null; 
  $wp_query = new WP_Query(); 
  $wp_query->query('showposts=6&post_type=news'.'&paged='.$paged); 

  while ($wp_query->have_posts()) : $wp_query->the_post(); 
?>

  <!-- LOOP: Usual Post Template Stuff Here-->

<?php endwhile; ?>

<nav>
    <?php previous_posts_link('&laquo; Newer') ?>
    <?php next_posts_link('Older &raquo;') ?>
</nav>

<?php 
  $wp_query = null; 
  $wp_query = $temp;  // Reset
?>

选项 3 - 使用 WP-pagenavi 插件

就像另一种选择一样,您可以使用WP-pagenavi http://wordpress.org/plugins/wp-pagenavi/插件,并按照选项 1 中的方式设置查询。但是,一旦安装了插件,请对代码进行一项更改,删除元素中的所有内容并用此函数替换。所以你将以:

<nav>
    <?php wp_pagenavi( array( 'query' => $cpt_query ) ); ?>
</nav>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义帖子 wp_query 的分页 的相关文章

随机推荐