1

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

它不起作用,我不知道为什么。请帮忙。

4

2 回答 2

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;
}
于 2013-01-21T00:40:28.547 回答
0

好吧,我刚刚安装了名为“Custom Post Type Permalinks”的插件,为我的自定义帖子添加了 url 模板,如“/%seasons%/%postname%/”,现在它可以像我想要的那样重写 url。但我仍然不知道如何在代码中做到这一点......

于 2013-01-21T06:43:55.257 回答