我尝试为自定义帖子类型创建重写规则。我需要它像“/%post_type_name%/%taxonomy_slug /%post_slug%”。这是我用来添加规则的代码:
add_action('init', 'episodes_rewrites_init');
function episodes_rewrites_init(){
add_rewrite_rule(
'^episodes/([^/]*)/([^/]*)/?$',
'index.php?post_type=episodes&seasons=$matches[1]&episodes=$matches[2]', 'top'
);
}
它不起作用,我无法弄清楚为什么。请帮忙。
答案 0 :(得分:0)
好伙伴,我从未使用add_rewrite_rule
,WP codex说那是It is most commonly used in conjunction with add_rewrite_tag()
。
所以,我只是告诉你老兵们过去常常如何做这个重写规则
而且如果你正在为群众建立一个插件,你必须避免使用WP 3.5 features
许多人仍然使用WP2。*。
这些行动可以帮助您:
add_action('init', 'flushRewriteRules');
function flushRewriteRules()
{
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_filter('rewrite_rules_array', 'insertMyRewriteRules');
function insertMyRewriteRules($rules)
{
$newrules['^episodes/([^/]*)/([^/]*)/?$'] = 'index.php?post_type=episodes&seasons=$matches[1]&episodes=$matches[2]';
return $newrules + $rules;
}
add_filter('query_vars', 'insertMyRewriteQueryVars');
function insertMyRewriteQueryVars($vars)
{
array_push($vars, 'episodes', 'seasons', 'post_type');
return $vars;
}
答案 1 :(得分:0)
好吧,我刚刚安装了名为“自定义帖子类型永久链接”的插件,为我的自定义帖子添加了网址模板,如“/%seasons%/%postname%/”,现在它重写了我想要的网址。但我仍然不知道如何在代码中做到这一点......