Wordpress:query_posts()在自定义帖子类型存档中禁用next_posts_link()

时间:2016-08-22 03:38:39

标签: php wordpress pagination custom-post-type

我正在创建一个名为archive-key_piece.php的自定义模板,以容纳自定义帖子类型,' Key Pieces'。我想将posts_per_page从10个帖子更改为12个帖子。我使用query_posts('post_type=key_piece&posts_per_page=12&paged='.$paged);

进行了更改

问题在于,当我使用query_posts()时,它会完全禁用分页(偶数/ key-piece / page / 2 / won不起作用,它只会转换与第1页相同的结果) 。

当我使用

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('post_type=key_piece&posts_per_page=12&paged='.$paged);

这允许我通过url(key-piece / page / 2 /等)手动访问下一页但它仍然禁用next_posts_link()

我也在functions.php

中尝试了这个
function number_of_posts_on_archive($query){
    if ($query->is_archive) {
            $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
            $query->set('posts_per_page', 12);
            $query->set('pagination', $paged);
   }
    return $query;
}

add_filter('pre_get_posts', 'number_of_posts_on_archive');

但结果相同。

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

你走了。

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

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

  <!-- Template Stuff Here-->

<?php endwhile; ?>

<div class="navigation">
    <?php previous_posts_link('&laquo; Newer Here') ?>
    <?php next_posts_link('Older Here &raquo;') ?>
</div>

<?php 
  $WPQuery = null; 
  $WPQuery = $variable;  // Reset
?>

希望它会对你有所帮助。