我使用的是WordPress 3.0.1,我制作了一个自定义的帖子类型,名为\'dienasgramatas\'
. 我的插件还为显示此帖子类型的所有帖子制定了自定义重写规则,甚至还为查询来自定义作者的具有此帖子类型的帖子制定了自定义永久链接结构,但我无法创建分页规则:
这是一个有效的方法:
$new_rules[\'dienasgramatas\' . \'/([^/]+)/?$\'] =
\'index.php?post_type=dienasgramata&author_name=\' . $wp_rewrite->preg_index(1);
它给出了以下重写规则:[dienasgramatas/([^/]+)/?$] => index.php?post_type=dienasgramata&author_name=$matches[1]
但这个:$new_rules[\'dienasgramatas\' . \'/([^/]+)/page/?([0-9]{1,})/?$\'] =
\'index.php?post_type=dienasgramata&author_name=\' . $wp_rewrite->preg_index(1).
\'&paged=\' . $wp_rewrite->preg_index(2);
输出此(错误)重写规则:[dienasgramatas/([^/]+)/page/?([0-9]{1,})/?$] =>
index.php?dienasgramata=$matches[1]&paged=$matches[2]
正如你所见,post_type
被忽略,此重写规则无法正常工作。有人能告诉我为什么它不起作用或者如何纠正它吗?
函数的筛选器:
add_filter(\'generate_rewrite_rules\', \'add_rewrite_rules\');
全部功能如下:function add_rewrite_rules($wp_rewrite) {
$new_rules[\'dienasgramatas\' . \'/([^/]+)/?$\'] = \'index.php?post_type=dienasgramata&author_name=\' . $wp_rewrite->preg_index(1);
$new_rules[\'dienasgramatas\' . \'/([^/]+)/page/?([0-9]{1,})/?$\'] = \'index.php?author_name=\' . $wp_rewrite->preg_index(1) . \'&paged=\' . $wp_rewrite->preg_index(2) . \'&post_type=dienasgramata\';
$wp_rewrite->rules = array_merge($new_rules, $wp_rewrite->rules);
return $wp_rewrite;
}基本需求是我想去
www.example.com/dienasgramatas/admin/page/2
并通过“admin”获取post\\u type=“dienasgramata”和第二页的帖子(例如,10个帖子偏移量)。不使用第/2页重写规则可以正常工作。可能是正则表达式问题或查询变量问题,也可能是重写规则的分配方式问题。现场示例:http://dev.fiicha.lv/jb/dienasgramatas/juris/
- 工作正常http://dev.fiicha.lv/jb/dienasgramatas/juris/page/2/
- 不起作用
底部是所有重写规则和查询变量