Custom permalink question

时间:2019-02-25 作者:Barry Tuber

我有一个多站点环境,在这个环境中,我切换数据库以检索在一个站点上输入的自定义帖子类型中的数据,并在另一个站点上显示。

在没有存储数据的站点上(并且未定义帖子类型),我想要一个像/post-type-name/item-slug/ 在名为/post-type-name/. 然后,我可以在特定于页面的模板中编写代码来切换数据库,检索item slug的数据,并显示它。但我不知道如何让permalink工作,除了像这样做/post-type-name?item-slug.

1 个回复
SO网友:Krzysiek Dróżdż

你需要的是register your own Rewrite Rule. 要做到这一点,您应该使用add_rewrite_rule 作用

function my_custom_external_rewrite_rule() {
    add_rewrite_rule(\'^post-type-name/([^/]+)/?\', \'index.php?page_id=<PAGE_ID>&external_page_name=$matches[1]\', \'top\');
}
add_action( \'init\', \'my_custom_external_rewrite_rule\' );
您必须注册自定义查询变量(使用query_vars 挂钩):

function my_custom_external_query_var( $query_vars ) {
    $query_vars[] = \'external_page_name\';
    return $query_vars;
}
add_filter( \'query_vars\', \'my_custom_external_query_var\' );
这种方式要求post-type-name/slug/ 将导致使用显示页面,您将能够使用获取外部帖子的slugget_query_var( \'external_page_name\' );

相关推荐

Problem with permalinks

我已经更改了类别的基本名称,现在它是“博客”,工作正常。但当我通过/blog/%category%/%postname%/更改结构时。显示404。如果我删除结构中的blog,它会再次工作,但我想使用blog word。问题出在哪里?非常感谢。