我想更改特定自定义帖子类型的永久链接结构。即
http://test.com/brand/calvin-klien?mtype=tab2
^this is dynamic
结束日期
http://test.com/brand/calvin-klien/mtype/tab2
^this is dynamic
下面是我试过的一段代码。
正在注册add_rewrite_tag
function custom_rewrite_tag() {
add_rewrite_tag('%mtype%', '([a-z0-9\-]+)');
}
add_action('init', 'custom_rewrite_tag', 10, 0);
add_action('init', 'wpse50530_journal_archive_rewrite', 10, 0);
代码1
function wpse50530_journal_archive_rewrite(){
add_rewrite_rule('brand/([a-z0-9\-]+)/([a-z0-9\-]+)/$','index.php?name=$matches[1]/?mtype=$matches[2]','top');
}
代码2
add_action('generate_rewrite_rules', 'work_list');
function work_list($wp_rewrite) {
$newrules = array();
$newrules['brand/([a-z0-9\-]+)/([a-z0-9\-]+)/$'] = 'index.php?name=$matches[1]&mtype=$matches[2]';
$wp_rewrite->rules = $newrules + $wp_rewrite->rules;
我已经尝试了上面的codes
,flushed permalinks
,但仍然是404
。我不知道为什么它在htaccess中创建**$匹配**,因为htacces不知道什么是**$匹配**
我也试过monkeyman-rewrite-analyzer plugin,它显示了正确的匹配结果,但仍然显示404
。
x1c 0d1x
4条答案
按热度按时间dgiusagp1#
下面的代码应该会有所帮助
冲洗你的永久链接,它应该工作。
iqih9akk2#
我将继续Anand的代码进行一些进一步的修改。它在
name=$matches[1]
上重定向,我需要停留在我点击的同一个URL上,为此它必须包括自定义帖子类型名称。我得到了漂亮的URL... Yaaay!!!但是
URL
不包含query string(i.e: mtype=tab1)
,我的代码的其余部分是无用的,所以我们可以通过执行get_query_var('mtype')
来实现这一点,我得到了在$_REQUEST['mtype']
中工作的相同值,我的代码工作得很好。我还关闭了monkeyman pluggin
c9qzyr3d3#
以防万一任何人有同样的问题,并检查了这个页面。
在固定链接设置页面中,检查固定链接结构是如何配置的。最常见的是在自定义结构字段中输入
/%postname%/
,以使rewrite_rules正常工作。ohfgkhjo4#
在调用函数add_rewrite..之前或之后插入此代码status_header(200);