首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义重写会导致分页时的404。

自定义重写会导致分页时的404。
EN

WordPress Development用户
提问于 2018-07-30 14:08:33
回答 1查看 292关注 0票数 1

我已经有了自定义重写规则,以便posts页面URL可以是/blog/,并且所有的帖子都有/blog/post-title-here/结构,这很好,但是当/blog/页面分页像/blog/page/2/一样构造时,我得到了一个404错误--我在StackOverflow周围看到了许多主题和问题,但是似乎所有的答案都是为了类别的结构,比如/blog/cat-name/page/2/,在这里,我只是需要/blog/page/2/

下面是我的重写函数,用于将/blog/附加到post URL:

代码语言:javascript
复制
add_action( 'generate_rewrite_rules', 'site_add_blog_rewrites' );
function site_add_blog_rewrites( $wp_rewrite ) {
  $wp_rewrite->rules = array(
    'blog/([^/]+)/?然后,我使用以下方法转换post permalinks:function site_filter_post_link($permalink, $post) {
  if ($post->post_type != 'post') {
    return $permalink;
  }
  return 'blog'.$permalink;
}
add_filter('pre_post_link', 'site_filter_post_link', 10, 2);我是否遗漏了适当的重写以允许/blog/page/2/结构,或者这不可能,因为WP认为/page/在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构/%category%/%postname%/。佩尔墨克必须呆在/%postname%/ => 'index.php?name=$matches[1]',
    'blog/[^/]+/attachment/([^/]+)/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 => 'index.php?attachment=$matches[1]',
    'blog/[^/]+/attachment/([^/]+)/trackback/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 => 'index.php?attachment=$matches[1]&tb=1',
    'blog/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 => 'index.php?attachment=$matches[1]&feed=$matches[2]',
    'blog/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 => 'index.php?attachment=$matches[1]&feed=$matches[2]',
    'blog/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 => 'index.php?attachment=$matches[1]&cpage=$matches[2]',
    'blog/([^/]+)/trackback/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 => 'index.php?name=$matches[1]&tb=1',
    'blog/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 => 'index.php?name=$matches[1]&feed=$matches[2]',
    'blog/([^/]+)/(feed|rdf|rss|rss2|atom)/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 => 'index.php?name=$matches[1]&feed=$matches[2]',
    'blog/([^/]+)/page/?([0-9]{1,})/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 => 'index.php?name=$matches[1]&paged=$matches[2]',
    'blog/([^/]+)/?([0-9]{1,})/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 => 'index.php?name=$matches[1]&paged=$matches[2]',
    'blog/([^/]+)/comment-page-([0-9]{1,})/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 => 'index.php?name=$matches[1]&cpage=$matches[2]',
    'blog/([^/]+)/(/[0-9]+)?/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 => 'index.php?name=$matches[1]&page=$matches[2]',
    'blog/[^/]+/([^/]+)/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 => 'index.php?attachment=$matches[1]',
    'blog/[^/]+/([^/]+)/trackback/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 => 'index.php?attachment=$matches[1]&tb=1',
    'blog/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 => 'index.php?attachment=$matches[1]&feed=$matches[2]',
    'blog/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 =>     'index.php?attachment=$matches[1]&feed=$matches[2]',
    'blog/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?然后,我使用以下方法转换post permalinks:A8我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!注意:我不能有我的permalinks结构D11。佩尔墨克必须呆在D12 =>     'index.php?attachment=$matches[1]&cpage=$matches[2]',
  ) + $wp_rewrite->rules;
}

然后,我使用以下方法转换post permalinks:

A8

我是否遗漏了适当的重写以允许D9结构,或者这不可能,因为WP认为D10在这个结构中应该是一篇文章吗?任何帮助都将不胜感激!

注意:不能有我的permalinks结构D11。佩尔墨克必须呆在D12

EN

回答 1

WordPress Development用户

发布于 2020-07-14 03:46:58

如果还有人有这个问题(这篇文章很老了),我在这篇博文中找到了一个非常有用的片段:https://www.grzegorowski.com/wordpress-rewrite-rules

代码语言:javascript
复制
/**
 * Reprioritise pagination over displaying custom post type content
 */
add_action('init', function() {
  add_rewrite_rule('(.?.+?)/page/?([0-9]{1,})/?这将确保WP在post类型查询规则之前使用分页规则。, 'index.php?pagename=$matches[1]&paged=$matches[2]', 'top');
});

这将确保WP在post类型查询规则之前使用分页规则。

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/309951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档