Using rules in Posts

时间:2017-06-01 作者:Shantia

我正在为客户设计一个主题。我们只有one post 对于每个TvShow, 在那根柱子里,我们有SeasonsEpisodes. (使用meta_post).

现在,我有一个ul 对于filtering seasons 一个用于filtering episodes, 比如《第一季》第三集。但这需要在帖子中添加规则(我不想使用js 为此)。

类似于:www.example.com/tvshow-name/season-3/episode4/

显然,我们不能使用add_rewrite_rule (相信我,我试了很多!),我不知道如何才能在类似帖子的页面地址中添加内容。

类似于:add_rewrite_rules(\'/([^/]+)/season-([0-9]+)/episode-([0-9]+)/?$\', \'index.php?name=$matches[1]&season=$matches[2]&episode=$matches[3])

The problem is: 在前往之后www.example.com/tvshow-name/season-3/episode4/, 它重定向回www.example.com/tvshow-name/, 我没有任何一季或一集!

这是可能的,还是我必须创建一个页面并在上面创建我的单个帖子模板?(这很难看,但也是最后的希望)

2 个回复
SO网友:Milo

你就快到了。您需要添加seasonepisode 将变量查询到已识别的变量数组。还要注意正则表达式的小变化-

function wpd_add_my_rule(){
    add_rewrite_rule(
        \'^([^/]+)/season-([0-9]+)/episode-([0-9]+)/?$\',
        \'index.php?name=$matches[1]&season=$matches[2]&episode=$matches[3]\',
        \'top\'
    );
}
add_action( \'init\', \'wpd_add_my_rule\' );

function wpd_add_query_vars( $query_vars ) {
    $query_vars[] = \'season\';
    $query_vars[] = \'episode\';
    return $query_vars;
}
add_filter( \'query_vars\', \'wpd_add_query_vars\' );
您可以使用get_query_var() 在模板中获取值。

SO网友:Shantia

我回答自己的问题并不漂亮,但对于其他可能有同样问题的人来说:

我只是想补充一下post_type 在我的add_rewrite_rule

 add_rewrite_rule(
    \'^([^/]+)/season-([0-9]+)/episode-([0-9]+)/?$\',
    \'index.php?post_type=tvseries&name=$matches[1]&season=$matches[2]&episode=$matches[3]"\',
    \'top\'
);

结束