WP自定义分类法分页

时间:2014-04-09 14:45:25

标签: wordpress pagination taxonomy

我有自定义分类(支持)和自定义帖子类型(问题)两者相关。

在我的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('&larr; ' . __('Previous', 'my-theme' ), $questions->max_num_pages); ?>
        </div>
        <div class="pull-right">
            <?php next_posts_link(__('Next', 'my-theme') . ' &rarr;', $questions->max_num_pages); ?>
        </div>
    </div>

<?php endif; ?>

如您所见,我每页定义了2个帖子。

当我访问该页面时,它显示了2个帖子,然后我转到第2页,它仍然有效,但当我转到第3页或更高时,它显示404。

有什么想法吗?

我在没有安装插件的情况下使用WordPress 3.8.2。

由于

1 个答案:

答案 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;行动是一个。

希望它有所帮助!