无法创建重写规则

时间:2013-01-20 21:53:37

标签: wordpress

我尝试为自定义帖子类型创建重写规则。我需要它像“/%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'
    );
}

它不起作用,我无法弄清楚为什么。请帮忙。

2 个答案:

答案 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%/”,现在它重写了我想要的网址。但我仍然不知道如何在代码中做到这一点......