【问题标题】:WordPress 404 error with pagination /page/2/ when setting posts_per_page设置posts_per_page时分页/page/2/的WordPress 404错误
【发布时间】:2019-04-06 04:03:59
【问题描述】:

我对使用 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 并在谷歌搜索其他选项。我已经在阅读中更改了设置,但仍然没有运气。

任何帮助将不胜感激。我知道有一个 7 年的老插件叫做类别分页修复。但它已过时,不适用于 PHP 7.2 和最新版本的 WordPress。

【问题讨论】:

  • 更新:也注意到这个问题可能与永久链接设置有关:当前使用 /%category%/%postname%/ 但是当我更改为普通 URL 时,例如:/?paged=2&cat=3将正常工作。

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


【解决方案1】:

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

此页面显示 404 的原因是因为在 settings > permalinks 下我使用的是自定义结构

/%category%/%postname%/

并将“类别基数”设置为“。” (句号)在术语这将页面从 /category/news/page/2 删除到 /news/page/2 但也打破了分页..

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

Yoast SEO pro 中也有类似的功能,可能会做类似的事情。

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

【讨论】:

  • 谢谢,我在使用“。”时遇到了同样的问题。删除类别slug,插件修复了分页错误。
猜你喜欢
  • 1970-01-01
  • 2015-07-18
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
  • 2012-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多