设置posts_per_page

时间:2018-11-01 21:29:30

标签: php wordpress function wordpress-theming http-status-code-404

我对使用WordPress编码非常陌生。本质上,我的目的是为单独的类别设置不同的每页帖子数限制。

所以我用以下代码编辑了主题上的functions.php文件。

// Set the posts per category.
add_filter('pre_get_posts', 'per_category_basis');
function per_category_basis($query){

    if ($query->is_category) {
        // category named 'books' show 12 posts
        if (is_category('team')){
            $query->set('posts_per_page', 100);
        }

        if (is_category('our-work') || is_category('news')){
            $query->set('posts_per_page', 2);
        }
    }
    return $query;
}

这确实可以很好地显示帖子数。问题是导航到第2页时 website.com/news/page/2 / ,我会收到404错误。

我已经尝试对function.php进行更改,并在google中搜索其他选项。我已经更改了阅读下的设置,但仍然没有运气。

任何帮助将不胜感激。我知道有一个7年旧的插件,称为类别分页修复。但是它已过时,不能在PHP 7.2和最新版本的WordPress上使用。

1 个答案:

答案 0 :(得分:0)

好的,所以我发现了问题所在。

此页面显示404的原因是,在设置>永久链接下,我使用了自定义结构

/%category%/%postname%/

,并将“类别库”设置为“”。 (句号)将页面从 / category / news / page / 2 移至 / news / page / 2 ,但也破坏了分页。 >

我找到的最简单的修复方法就是安装以下插件。解决了我的问题,并使分页正确地工作100%。

Yoast SEO pro中也有类似的功能,

无类别库(WPML): https://wordpress.org/plugins/no-category-base-wpml/