我有自定义分类(支持)和自定义帖子类型(问题)两者相关。
在我的taxonomy-support.php模板文件中,我使用以下查询:
<?php
$current_category = get_term_by('id', get_queried_object()->term_id, 'support');
$questions = new WP_Query(array(
'post_type' => array('question'),
'post_status' => 'publish',
'posts_per_page' => 2,
'paged' => ((get_query_var('paged')) ? get_query_var('paged') : 1),
'nopaging' => false,
'tax_query' => array(
array(
'taxonomy' => 'support',
'terms' => array($current_category->term_id)
)
),
'orderby' => 'menu_order',
'order' => 'ASC'
));
?>
循环
<?php if ($questions->have_posts()): ?>
<ul>
<?php while ($questions->have_posts()) : $questions->the_post(); ?>
<li>
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<?php the_excerpt(); ?>
</li>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
</ul>
<div class="clearfix">
<div class="pull-left">
<?php previous_posts_link('← ' . __('Previous', 'my-theme' ), $questions->max_num_pages); ?>
</div>
<div class="pull-right">
<?php next_posts_link(__('Next', 'my-theme') . ' →', $questions->max_num_pages); ?>
</div>
</div>
<?php endif; ?>
如您所见,我每页定义了2个帖子。
当我访问该页面时,它显示了2个帖子,然后我转到第2页,它仍然有效,但当我转到第3页或更高时,它显示404。
有什么想法吗?
我在没有安装插件的情况下使用WordPress 3.8.2。
由于
答案 0 :(得分:0)
我很高兴找到你的帖子,因为我正在为同样的问题而奋斗(不太乐意找不到答案;)。
无论如何,我终于在这里找到了一些有趣的东西:https://wordpress.org/support/topic/set-number-of-posts-for-custom-taxonomy
这对我来说很有用。
我认为你的情况是你的全局posts_per_page选项(在管理员中设置)的值大于你的分类法的值,这使得系统搞砸了。
嗯,当你想到它时,并没有那么多:在其生命周期中,按原样使用全局posts_per_page选项,请求不会验证&#34;分页&#34; url,因此永远不会加载你的taxonomy-support.php模板文件,你告诉它posts_per_page应该是不同的。
然后,您必须在初始化过程中更早地告诉它。 &#39; pre_get_posts&#39;行动是一个。
希望它有所帮助!