Удалить меню со страниц, оставив в buddyBar'е
-
Кто нибудь знает, как удалить меню в профиле пользователей (Активность Профиль Сообщения Друзья Настройки) на страницах так, чтобы оно осталось в менюшке сверху страницы?
Или можно ли отредактировать вручную это меню и добавлять самому туда пункты ?
-
Не вмещается в шаблоне? 🙂
Вам поможет вот этот код (может дать пищу для ума, натолкнуть на идею, еще что-нибудь):
function neltp_acc_navi(){ global $bp; if ( !is_user_logged_in() ) return false; // $bp->doing_admin_bar = true; $acc_navi .= '<li><a href="' . $bp->loggedin_user->domain . '">'; $acc_navi .= __( 'My Account', 'buddypress' ) . '</a>'; $acc_navi .= '<ul>'; /* Loop through each navigation item */ $counter = 0; foreach( (array)$bp->bp_nav as $nav_item ) { $alt = ( 0 == $counter % 2 ) ? ' class="alt"' : ''; if ($nav_item['name'] == 'Settings') continue; $acc_navi .= '<li' . $alt . '>'; $acc_navi .= '<a id="bp-admin-' . $nav_item['css_id'] . '" href="' . $nav_item['link'] . '">' . $nav_item['name'] . '</a>'; if ( is_array( $bp->bp_options_nav[$nav_item['slug']] ) ) { $acc_navi .= '<ul>'; $sub_counter = 0; foreach( (array)$bp->bp_options_nav[$nav_item['slug']] as $subnav_item ) { $link = str_replace( $bp->displayed_user->domain, $bp->loggedin_user->domain, $subnav_item['link'] ); $name = str_replace( $bp->displayed_user->userdata->user_login, $bp->loggedin_user->userdata->user_login, $subnav_item['name'] ); $alt = ( 0 == $sub_counter % 2 ) ? ' class="alt"' : ''; if($nav_item['slug'] == 'activity' && $subnav_item['slug'] == 'just-me') { $acc_navi .= '<li><a href="'.site_url() .'/'. BP_ACTIVITY_SLUG .'">Sitewide</a></li>'; } $acc_navi .= '<li' . $alt . '><a id="bp-admin-' . $subnav_item['css_id'] . '" href="' . $link . '">' . $name . '</a></li>'; $sub_counter++; } $acc_navi .= '</ul>'; } $acc_navi .= '</li>'; if($nav_item['slug'] == BP_GROUPS_SLUG) { $acc_navi .= '<li><a href="'.site_url() .'/'. BP_GROUPS_SLUG .'/create">Create a Group</a></li>'; } $counter++; } $alt = ( 0 == $counter % 2 ) ? ' class="alt"' : ''; $acc_navi .= '<li' . $alt . '><a id="bp-admin-logout" class="logout" href="' . wp_logout_url( get_bloginfo('url') ) . '">' . __( 'Log Out', 'buddypress' ) . '</a></li>'; $acc_navi .= '</ul>'; $acc_navi .= '</li>'; // $bp->doing_admin_bar = false; return $acc_navi; }
Эта функция полностью копирует стандартный вывод элементов в BuddyBar под меню Учетная запись. С помощью строки
if ($nav_item['name'] == 'Settings') continue;
вы не отображаете определенные элементы. Они остаются в системе, но не отображаются.
Вот вам самый простой порядок действий:
1) находите функцию в шаблоне, которая выводит нужное вам меню;
2) копируете ее вfunctions.php
шаблона
3) переименовываете
4) удаляете ненужные элементы
5) вставляете новое название этой функции в нужном месте в шаблоне
7) радуйтесьПункт 6) я пропустил специально. Ибо:
а) у вас ничего не получится с первого раза,
б) негоже писать пожелание «радуйтесь» возле числа «6».Успехов!
Либо я не понял Вас, либо Вы меня — уточняю — мне нужно, что бы в buddyBar’е всё осталось, а на страницах — убралось.
Я же четко сказал, что это вас может натолкнуть на идею. Я не говорил, что это решение. И тем более я вам также указал порядок действий. Суть в копировании, изменении имени функции, пропуска ненужных элементов и использовании вновь созданной функции вместо стандартной.
PS Пункт 6 в действии 🙂
Значит это я не так понял. Буду пробовать.
Я решил сделать проще:
Отключить BuddyBar и написать своё меню, что бы располагать его справа на сайте(fixed).
Теперь вот проблема, как его подключить к теме (оно у меня в отдельном файле)?В нужном месте пишите:
<?php include(TEMPLATEPATH.'/file.php'); ?>
/file.php — путь к файлу относительно корня папки шаблона.Вкрутил. Но меню теперь при появлении под всю тему уползает.
И такой вопрос:
Не нашёл (может и пропустил) функцию, определяющую, на странице какого пользователя я нахожусь (путь к ней /members/USER) и его имя, отображаемое на странице. Подскажите.
На мою страницу bp_loggedin_user_domain()Глобальная переменная
$bp->displayed_user
. Это объект. Распечатайте его print_r и увидите кучу инфо о пользователе, на странице которого вы в данный момент находитесь.<?php
echo «<input type=’button’ style=’position:fixed; left:0; top:40%;’ OnClick='».print_r(‘$bp->displayed_user’).»‘/>»?>Правильно ли я делаю ? Или я просто не понял чего то?
php знаю не очень хорошо, тизучаю всего пару месяцев.Это php переменная 🙂 Вот так надо:
<?php global $bp; print_r($bp->displayed_user); ?>
Вставляете в шаблоне там, где хотите увидеть инфу о просматриваемом профиле (/members/single/…php)
Спасибо. Разобрался. Скоро сделаю меню до конца (Надеюсь)
Остался 1 вопрос:
Как его поставить поверх темы ?
Я вставлял в header.php на нём он сверху, а все остальные части над ним. В какой файл лучше вставить ?Я не понимаю, как это «поверх темы». Вы имеете в виду выпадающий список? Так это делается с помощью css.
http://www.kaizer-com.ru/1.jpg вот фото (слева когда страница не прокручена в низ, справа когда немного прокручена). Мучаю на локалхосте его пока что. На сайт боюсь пока кидать, мало ли что 🙂
Вставьте в footer.php и сделайте элементу абсолютное позиционирование через css. Тогда будет сверху всегда.
- Тема «Удалить меню со страниц, оставив в buddyBar'е» закрыта для новых ответов.