我正在尝试创建一个动态buddypress选项卡,链接到一个动态url,如下所示localhost/wordpress/slug/username
任何访问另一个用户配置文件的用户都应该显示此选项卡,单击此选项卡时,应重定向到访问的用户,而不是访问的用户,我的意思是,我的URL末尾的用户名应替换为访问的当前配置文件的用户名
我正在使用wp\\u redirect函数将用户重定向到此url,但问题是我不知道如何编写此url?
我试着创建一个这样的变量$user = wp_get_current_user();
包括在内wp_redirect( "http://localhost/wordpress/slug/$user->display_name" );
但最终的结果是http://localhost/wordpress2/slug/
我甚至不确定是否应该将此函数调用为当前用户,请有人帮助我
请记住,我正在函数中编写代码。我的主题文件夹中的php文件
这就是我添加的代码
$user = wp_get_current_user();
add_action( \'bp_setup_nav\', \'create_tab3\', 303 );
function create_tab3() {
global $bp;
bp_core_new_nav_item(
array(
\'name\' => \'my name\',
\'slug\' => \'slug\',
\'position\' => 21,
\'default_subnav_slug\' => \'mySlug\', // We add this submenu item below
\'screen_function\' => \'redirect_user_to_tab3\',
)
);
}
function redirect_user_to_tab3(){
global $bp;
wp_redirect( "http://localhost/wordpress2/slug/$user->display_name" );
exit;
}
谢谢
最合适的回答,由SO网友:shanebp 整理而成
不能使用对象变量,$user->display_name
, 在字符串中。
为什么您需要一个链接回正在查看的成员的选项卡?您已经在查看该成员。
这将提供显示成员的url:bp_displayed_user_domain()
所以你可以这样做:
function redirect_user_to_tab3(){
bp_core_redirect( bp_displayed_user_domain() );
}
如果只需要当前显示用户的用户名,以便构建url,可以执行以下操作:
function redirect_user_to_tab3(){
$url = site_url() . \'/slug/\' . bp_get_displayed_user_username();
bp_core_redirect( $url );
}