Rewrite Rule for Post Meta

时间:2020-05-15 作者:Kevin Nugent

我想为自定义字段创建端点。例如,我已经有了一个自定义的“竞争”帖子类型,对于它,重写非常有效,并在网站上解决。com/竞赛/我的竞赛。在该比赛中,我使用高级自定义字段创建了奖项类别,所有这些字段都有一个唯一的ID。

我想能够访问网站。com/competitions/competition\\u slug/award category/category\\u slug。

我已经将类别的唯一ID传递给查询变量,并加载自定义模板,但仍然停留在网站上。com/award category/category\\u slug,无法确定如何将我的重写规则包括父级竞争。这是我的代码:

function aca_award_cat_rewrite_rule() {

    add_rewrite_rule( \'^award-category/([^/]*)/?\', \'index.php?award_category=$matches[1]\', \'top\' );
}

function aca_set_award_cat_query_var( $vars ) {

    array_push( $vars, \'award_category\' );
    return $vars;
}

function aca_include_award_cat_template( $template ) {
    if( get_query_var(\'award_category\') ) {
        $award_category_template = plugin_dir_path( dirname( __FILE__ ) ) . \'public/award-category-template.php\';
        if( file_exists( $award_category_template ) )
            $template = $award_category_template;
    }
    return $template;
}
我意识到现在我的rewrite\\u规则是通过索引发送用户。php,但我不知道如何适应awards/award\\u slug位,而不干扰post类型的现有重写规则。

1 个回复
SO网友:Kevin Nugent

可以因此,我只需更改rewrite\\u规则以包含事件,就可以实现这一点。。。

function aca_award_cat_rewrite_rule() {

    add_rewrite_rule( \'^awards/([^/]*)/award-category/([^/]*)/?\', \'index.php?competition=$matches[1]&award_category=$matches[2]\', \'top\' );
}

相关推荐