提问者:小点点

创建动态buddypress选项卡


我正在尝试创建一个动态buddypress选项卡,该选项卡链接到一个动态url,看起来像这样localhost/wordpress/slug/username

此选项卡应显示给访问其他用户配置文件的任何用户,单击时应重定向到访问的用户,而不是访问的用户,我的意思是,我的URL末尾的用户名应替换为访问的当前配置文件的用户名

我使用wp_redirect功能重定向用户到这个网址,但问题是我不知道如何写这个网址?

我试图创建一个变量,比如so$user=wp\u get\u current\u user()像这样包含它wp\u重定向(“http://localhost/wordpress/slug/$user-

请记住,我正在函数中编写代码。我的主题文件夹中的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;
}

谢谢


共2个答案

匿名用户

将用户重定向到选项卡3函数的作用域中没有$user变量,因此$user-

您需要设置$user=wp\u get\u current\u user()在函数中。

之后,阅读变量范围上的文档,因为它们在PHP中非常重要。

匿名用户

有人回答了我的问题,让我像这样修改代码中的最后一个函数

function redirect_user_to_tab3(){
    $url = site_url() . '/slug/' . bp_get_displayed_user_username();
    bp_core_redirect( $url );
}

而且效果很好,感谢所有帮助我的人