GET_NEXT_POSTS_LINK()在第4页停止显示

时间:2013-06-20 作者:cr0z3r

请先看一下此快速视频:http://www.screenr.com/8vSH

The problem: get_next_posts_link() 在第4页消失。也就是说,“转到旧帖子”链接会在我进入后消失&paged=4 我的博客。但是,我可以手动键入eg。&paged=5 我确实收到了第五页的帖子(也就是说,帖子在那里,但是get_next_posts_link() 只是没有出现)。

So..

<打印我的帖子总数会返回正确的数量(33),这告诉我所有帖子都被正确查询了next_posts_link() 无济于事

The current code looks like this:

echo \'<ul class="blog-navi">
                <li class="blog-navi-prev">\'.get_next_posts_link($pagi_older_text, 0).\'</li>
                <li class="blog-navi-next">\'.get_previous_posts_link($pagi_newer_text).\'</li>
            </ul>\';
谢谢大家!

The posts query

get_header();

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;

$blogcats = $era_opts[\'era_opts_blog_thecats\'];
if(!isset($era_opts[\'era_opts_blog_thecats\'])) {
    $blogcats = \'\';
} else {
    $blogcats = implode(\',\', $blogcats);
}

$args = array(
    \'post_type\' => \'post\',
    \'numberposts\' => \'-1\',
    \'paged\' => $paged,
    \'category\' => $blogcats
);
$era_blog_posts = get_posts($args);

The added pre_get_posts function in functions.php

function era_blog_cats_wpse_103587($qry) {
  if ($qry->is_page(122) && is_main_query()) {
    $era_opts = get_option(\'era_theme_panel\');
    $blogcats = $era_opts[\'era_opts_blog_thecats\'];

    if(!empty($era_opts[\'era_opts_blog_thecats\'])) {
      $qry->set(\'category__in\', $blogcats);
    }
  }
}
add_action(\'pre_get_posts\',\'era_blog_cats_wpse_103587\');

1 个回复
SO网友:s_ha_dum

我不知道在哪里$era_opts 来自但过滤器打开pre_get_posts 应该这样做并保留分页。

function era_blog_cats_wpse_103587($qry) {
  if ($qry->is_page(\'your-page\') && is_main_query()) {
    $era_opts = get_option(\'era_opts\'); // assuming that era_opts are options
    $blogcats = $era_opts[\'era_opts_blog_thecats\'];
    if(!empty($era_opts[\'era_opts_blog_thecats\'])) {
      $qry->set(\'category__in\', $blogcats);
    }
  }
}
add_action(\'pre_get_posts\',\'era_blog_cats_wpse_103587\');
我对你的数据做了一些假设,但这应该是我的想法。我也不知道你需要在什么条件下开火。请参见函数中的第一行。您需要更改该行以控制此筛选器何时运行以及何时不运行。

该函数将影响页面上的主查询,希望对您有用。如果要对辅助循环分页,则常规分页函数无法正常工作。我建议您使用paginate_links 而不是试图让这些功能发挥作用,但你可以see this question for other options. 这里也有其他类似的问题。

结束

相关推荐

Pagination on a page

我有一个页面,其中显示了大量自定义帖子类型的帖子,就像博客显示了大量帖子一样。我正在使用WP_Query 并且正确输出分页链接,但是当我导航到第2页url时(/my_page/page/2) 我得到了404,这并不奇怪,因为我认为WordPress认为我需要子页面。。。但我不想,我想要那个值作为分页值。有没有办法在特定页面上启用此功能?