it-swarm.cn

根据具体情况(例如,主页,搜索,存档),每页显示不同数量的帖子

在阅读设置中,可以设置显示的帖子数量,这些帖子会影响所有上下文中显示的帖子数量。我想在主页上显示一定数量的帖子,在档案,搜索结果等页面上显示不同数量的帖子。

reading-settings-blog-pages-show-at-most-per-page

我意识到我可以通过编辑主题文件并在那里更改查询参数来实现这一点,但我更希望能够更轻松地访问简单的设置页面。很久以前,我遇到过这样做的插件,但我现在无法找到它。

有没有人知道一个插件来做这个,甚至是一个函数我可以放在functions.php来完成同样的事情?

21
Doug

我相信在插件中执行此操作的最佳方法是在遇到pre_get_posts操作挂钩时运行以下示例函数。 $wp_query对象可用,这意味着您的条件标签可用,但在WordPress获取帖子之前,这意味着您在第一个查询运行之前更改查询变量,而不是添加第二个查询,例如在查询中使用query_posts()时主题文件。

function custom_posts_per_page($query) {
    if (is_home()) {
        $query->set('posts_per_page', 8);
    }
    if (is_search()) {
        $query->set('posts_per_page', -1);
    }
    if (is_archive()) {
        $query->set('posts_per_page', 25);
    } //endif
} //function

//this adds the function above to the 'pre_get_posts' action     
add_action('pre_get_posts', 'custom_posts_per_page');
23
kevtrout

你可以使用query_posts做一个自定义循环,并通过is_home,is_archive等指定帖子数量。

只是一个简单的if语句和query_posts

0
chrismccoy