定制URL方案-定制帖子类型的参数

时间:2014-05-07 作者:user180386

我有一个自定义的帖子类型设置为事件。在这个帖子类型中,我有各种各样的内容/自定义元,它们将在两到三个不同的页面上使用。

我想知道我的自定义帖子类型url是

http://www.mysite.com/my-custom-post-title/

在那个页面上,我有3个链接,点击后会加载相关内容,即。

http://www.mysite.com/my-custom-post-title/faqs/

http://www.mysite.com/my-custom-post-title/directions/

我可以通过初始URL上的查询字符串参数实现我想要的,但我想知道我是否可以使用漂亮的URL,而不是http://www.mysite.com/my-custom-post-title/?subconten=faqs

我知道你可以自己重写,但我不知道怎样才能最好地完成它。

更新时间:

因此,假设我有以下URL:

http://www.mysite.com/events/my-custom-post-title/info/directions/

我添加了以下操作

add_action(\'init\',\'custom_rewrites\'); function custom_rewrites() { global $wp,$wp_rewrite,$wp_query; $wp->add_query_var(\'content_filter\'); $wp_rewrite->add_rule(\'events/([^/]+)/info/([^/]+)/\', \'index.php?post_type=portfolio&name=$matches[1]&content_filter=$matches[2]\', \'top\'); $wp_rewrite->flush_rules(false);
// print_r( $wp_rewrite ); }

仍然没有什么-我发现,如果我将查询变量转储到404页的屏幕上,“direction”将作为附件返回。有人知道我该怎么做吗?

史蒂夫

1 个回复
SO网友:TheDeadMedic

尝试rewrite endpoints:

function wpse_143634_endpoint() {
    add_rewrite_endpoint( \'info\', EP_PERMALINK );
}

add_action( \'init\', \'wpse_143634_endpoint\' );
现在你会发现你可以访问任何帖子和附加信息info/whatever 到URL-WordPress仍将加载帖子,除非现在您有get_query_var( \'info\' ) == \'whatever\'.

进一步阅读:https://make.wordpress.org/plugins/2012/06/07/rewrite-endpoints-api/

结束

相关推荐