2015-11-10 5 views
0

Я пытаюсь создать динамическую вкладку BuddyPress, связанную с динамической URL, который выглядит как этот localhost/wordpress/slug/usernameСоздание динамической вкладки BuddyPress

эта вкладка должна появиться любому пользователю посетить профиль другого пользователя ,, и при нажатии на него следует перенаправить пользователю, посетившему, а не посетителю, я хочу сказать, что имя пользователя в конце моего 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; 
} 

Благодарности

ответ

0

Функция redirect_user_to_tab3 не имеет переменной $user в ее объеме, поэтому $user->display_name не определен.

В этой функции вам необходимо установить $user = wp_get_current_user();.

После этого read the docs on variable scope, поскольку они очень важны в PHP.

+0

аааа спасибо большое ,,, но он решил только половину проблемы, потому что теперь, когда я просматриваю профиль другого пользователя и нажимаю на эту вкладку из своего профиля, он перенаправляет меня на мою страницу (она меняет имя пользователя моей) ,,, чтобы быть более понятным, скажем, i 'm user1, поэтому, когда я нажимаю вкладку из своего профиля, я хочу этот url localhost/wordpress/slug/user1 ,,,,, но если я закрою вкладку из профиля user2, тогда я хочу этот url localhost/wordpress/s lug/user2 – dantosso

+0

Я знаю, что я должен назвать что-то другое, чем 'wp_get_current_user();' но я не знаю, что это такое ,,, вы можете рассказать мне – dantosso

0

кто answerd мой вопрос и сказал мне, чтобы изменить последнюю функцию в своем коде, как так

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

и она работала хорошо ,,,, спасибо всем, что помогли мне

Смежные вопросы