我想创建一些类似于buddypress对成员页面所做的事情。对于eg;http://www.example.com/members/foo
http://www.example.com/members/bar
等
我试着查找buddypress代码,发现它们没有使用自定义的帖子类型或自定义的分类法。看起来他们也没有使用add\\u rewrite\\u rule()。
我希望有类似的东西,我的插件将从URL中获取“foo”,并在此基础上生成内容。最好的方法是什么?
UPDATE:
我遵循了这条线索上的说明,这正是我想要的:
How to create a front end user profile with a friendly permalink代码如下:
add_filter( \'query_vars\', \'analytics_rewrite_add_var\' );
function analytics_rewrite_add_var( $vars )
{
$vars[] = \'analytic\';
return $vars;
}
function add_analytic_rewrite_rule(){
add_rewrite_tag( \'%analytic%\', \'([^&]+)\' );
add_rewrite_rule(
\'^analytics/([^/]*)/?\',
\'index.php?analytic=$matches[1]\',
\'top\'
);
}
add_action(\'init\', \'add_analytic_rewrite_rule\');
add_action( \'template_redirect\', \'analytics_rewrite_catch\' );
function analytics_rewrite_catch()
{
global $wp_query;
if ( array_key_exists( \'analytic\', $wp_query->query_vars ) ) {
include ( get_stylesheet_directory() . \'/html/analytics.php\');
exit;
}
}
然而,/分析/foo/仍然给我一个404。我做错了什么?
最合适的回答,由SO网友:Androliyah 整理而成
以下是答案。对于将来的参考,Deepak,您需要实际发布解决方案作为答案。相反,您在自己的问题中发布了答案,然后对此发表了评论。请不要那样做。
function analytics_rewrite_add_var( $vars ) {
$vars[] = \'analytic\';
return $vars;
}
add_filter( \'query_vars\', \'analytics_rewrite_add_var\' );
function add_analytic_rewrite_rule() {
add_rewrite_tag( \'%analytic%\', \'([^&]+)\' );
add_rewrite_rule(
\'^analytics/([^/]*)/?\',
\'index.php?analytic=$matches[1]\',
\'top\'
);
}
add_action(\'init\', \'add_analytic_rewrite_rule\');
function analytics_rewrite_catch() {
global $wp_query;
if ( array_key_exists( \'analytic\', $wp_query->query_vars ) ) {
include ( get_stylesheet_directory() . \'/html/analytics.php\');
exit;
}
}
add_action( \'template_redirect\', \'analytics_rewrite_catch\' );