创建动态 buddypress 选项卡

Create a dynamic buddypress tab

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

此选项卡应该显示给访问另一个用户个人资料的任何用户,并且在单击时应该重定向到访问的用户而不是访问的用户,我的意思是我 URL 末尾的用户名应该替换为当前访问的配置文件的用户名

我正在使用 wp_redirect 函数将用户重定向到这个 url 但问题是我不知道如何写这个 url ?

我试过创建一个像这样 $user = wp_get_current_user(); 的变量来包含它 wp_redirect( "http://localhost/wordpress/slug/$user->display_name" ); 但最终结果是 http://localhost/wordpress2/slug/ 我什至不确定我应该调用它功能当前用户所以请有人帮助我

请记住,我正在我的主题文件夹中的 function.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;
}

谢谢

您的 redirect_user_to_tab3 函数在其范围内没有 $user 变量,因此 $user->display_name 未定义。

您需要在函数中设置 $user = wp_get_current_user();

之后,read the docs on variable scope 因为它们在 PHP 中非常重要。

有人回答了我的问题并告诉我像这样更改代码中的最后一个函数

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

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