具有分页功能的自定义固定链接

时间:2017-12-07 作者:juliusbangert

我有一个自定义的帖子类型,叫做news 为了区分当前的旧的新闻帖子,我有一个自定义字段,客户可以在其中将新闻帖子标记为“已存档的”。

因此,我的permalink重写代码如下所示:

function custom_rewrite_rule() {
    add_rewrite_rule(\'^news/archive/?\',\'index.php?post_type=news‌​&news_archive=true\',‌​\'top\'); 
    add_rewrite_rule(\'^news/archive/page/([0-9]+)?/?$\',\'index.php?post_type=news&news_archive=true&paged=$matches[1]\',\'top\');   
}
add_action(\'init\', \'custom_rewrite_rule\', 10, 0);

function add_query_vars_filter( $vars ){
    $vars[] = "news_archive";
    return $vars;
}
add_filter( \'query_vars\', \'add_query_vars_filter\' );
第一位工作正常,但问题在于分页。我可以访问news_archive query\\u var,但不是paged query\\u变量。

将页面合并到永久链接重写中的正确方法是什么?

1 个回复
最合适的回答,由SO网友:Milo 整理而成

问题是,您的第一条规则是捕获以news/archive/.

添加$ 仅锚定匹配news/archive/:

add_rewrite_rule(
    \'^news/archive/?$\',
    \'index.php?post_type=news&news_archive=true\',
    \'top\'
);
刷新永久链接后,分页规则将按原样开始工作。

结束

相关推荐

Pretty permalinks (again)

我正试图在我的WordPress站点中启用永久链接。但每次我尝试更改为除默认链接外的任何永久链接选项时,帖子的链接都会转到404。如果我把它改回来,它就正常工作了。我正在Ubuntu服务器14.04上使用WP 4.2.4和Apache 2.4.7。我做过的事情:我有mod_rewrite 在Apache中启用</我有选择+FollowSymLinks 和AllowOverride All 和RewriteEngine On 在Apache服务器的配置文件中</我已给予书面许可.htaccess