2015-05-21 7 views
0

Прежде всего, я видел много людей, пытающихся выполнить аналогичную задачу, а просто создать новую вкладку с суб-вкладками в меню пользовательского профиля. Мне удалось это сделать, но я не могу заставить обработчик URL правильно работать. Когда я нажимаю на первую вкладку, она просто возвращает меня на главную страницу для профиля пользователя, и когда я нажимаю на любые дополнительные вкладки, я получаю 404 ошибки. У меня такое чувство, что я пропустил что-то довольно простое, и за последние пару недель я пытался узнать, как сделать эту работу без везения. Если бы кто-то мог помочь мне в том, как правильно это сделать, я был бы очень благодарен, и я думаю, что многие другие найдут это сообщение полезным в будущем.Подсказки и вкладки нового профиля Buddypress: Как правильно настроить URL-адрес URL-адреса?

Для записи вкладка основного профиля работает правильно, но на суб-вкладках нет.

Вот код, который я в настоящее время в моем п.н.-custom.php файл

// My Membership Profile Tab 
function profile_new_nav_item() { 

global $bp; 

bp_core_new_nav_item(
array(
    'name'    => 'My Membership', 
    'slug'    => 'my-membership', 
    'default_subnav_slug' => 'extra_sub_tab', // We add this submenu item below 
    'screen_function'  => 'view_manage_tab_main' 
) 
); 
} 


add_action('bp_setup_nav', 'profile_new_nav_item', 10); 

function view_manage_tab_main() { 
add_action('bp_template_content', 'bp_template_content_main_function'); 
bp_core_load_template('template_content'); 
} 

function bp_template_content_main_function() { 
if (! is_user_logged_in()) { 
    wp_login_form(array('echo' => true)); 
} 
} 

function profile_new_subnav_item() { 
global $bp; 

bp_core_new_subnav_item(array(
    'name'   => 'Membership Level', 
    'slug'   => 'extra_sub_tab', 
    'parent_url'  => $bp->loggedin_user->domain . $bp->bp_nav[  'extra_tab' ][ 'slug' ] . '/', 
    'parent_slug'  => $bp->bp_nav[ 'my-membership' ][ 'slug' ], 
    'position'  => 10, 
    'screen_function' => 'view_manage_sub_tab_main' 
)); 
} 

add_action('bp_setup_nav', 'profile_new_subnav_item', 10); 

function view_manage_sub_tab_main() { 
add_action('bp_template_content', 'bp_template_content_sub_function'); 
bp_core_load_template('template_content'); 
} 

function bp_template_content_sub_function() { 
if (is_user_logged_in()) { 
    //Add shortcode to display content in sub tab 
    echo do_shortcode('[membership]'); 
} else { 
    wp_login_form(array('echo' => true)); 
} 
} 

// My Billing Profile Tab 

function profile_new_subnav_item_billing() { 
global $bp; 

bp_core_new_subnav_item(array(
    'name'   => 'Billing', 
    'slug'   => 'extra_sub_tab_billing', 
    'parent_url'  => $bp->loggedin_user->domain . $bp->bp_nav[ 'extra_tab' ][ 'slug' ] . '/', 
    'parent_slug'  => $bp->bp_nav[ 'my-membership' ][ 'slug' ], 
    'position'  => 20, 
    'screen_function' => 'view_manage_sub_tab_billing' 
)); 
} 

add_action('bp_setup_nav', 'profile_new_subnav_item_billing', 20); 

function view_manage_sub_tab_billing() { 
add_action('bp_template_content',  'bp_template_content_sub_function_billing'); 
bp_core_load_template('template_content'); 
} 

function bp_template_content_sub_function_billing() { 
if (is_user_logged_in()) { 
    //Add shortcode to display content in sub tab 
    echo do_shortcode('[billing]'); 
} else { 
    wp_login_form(array('echo' => true)); 
} 
} 

ответ

0

Вы можете использовать это:

// define your parent slug 
$parent_slug = 'activity'; 
    bp_core_new_subnav_item(array(......... 
    'parent_url'  => $bp->loggedin_user->domain . $parent_slug.'/', 
    'parent_slug'  => $parent_slug, 

Это работает для меня.

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

  • Нет связанных вопросов^_^