Ссылка, код, адрес … на профиль. Помогите.
-
Прошу помощи. Сил моих больше нет. Я убрал админскую панель — не подходит к дизайну сайта. Необходимо сделать кнопку в общем меню — там где участники, группы и т.д., которая будет переводить участника к его профилю в BuddyPress (там где аватар меняется, активность и т.д.). Не знаю как. Постоянного адреса у профиля нет, так как он зависит от зологиного участника. Коды просмотрел — не нашел. Помогите. Может кто уже выводил профиль на меню. Спасибо.
-
Вот код (взят из файла header.php):
<?php bp_loggedinuser_link() ?>
Если человек авторизован, то появится его имя и ссылка на профиль. Если неавторизован — пустота, но лучше тогда сделать вот так:<?php if ( is_user_logged_in() ) { bp_loggedinuser_link(); }else { #тут можете написать код того, что будет отображаться, если человек неавторизован; }
Спасибо, slaFFik. Приду домой — поробую.
Но у меня вопрос. Можно без имени. Чтобы была кнопка «профиль» в меню, нажав на которую попадаешь в профиль….. например в «публичное»…?
Тогда используйте функцию bp_loggedin_user_domain() вместо bp_loggedinuser_link().
Спасибо, slaFFik. Попробую.
Вот, вспомнил еще один вариант:
<a href="<?php bp_get_loggedin_user_link() ?>">Профиль</a>
slaFFik, что-то я туплю, не получается, объясни чайнику. Вот код меню, он находится в header.php темы «black_grey_member»:
<div id="nav"> <ul id="nav"> <li<?php if ( bp_is_page( 'home' ) ) {?> class="selected"<?php } ?>><a href="<?php echo get_option('home') ?>" title="<?php _e( 'Home', 'buddypress' ) ?>"><?php _e( 'Home', 'buddypress' ) ?></a></li> <li<?php if ( bp_is_page( BP_HOME_BLOG_SLUG ) ) {?> class="selected"<?php } ?>><a href="<?php echo get_option('home') ?>/<?php echo BP_HOME_BLOG_SLUG ?>" title="<?php _e( 'Blog', 'buddypress' ) ?>"><?php _e( 'Blog', 'buddypress' ) ?></a></li> <li<?php if ( bp_is_page( BP_MEMBERS_SLUG ) ) {?> class="selected"<?php } ?>><a href="<?php echo get_option('home') ?>/<?php echo BP_MEMBERS_SLUG ?>" title="<?php _e( 'Members', 'buddypress' ) ?>"><?php _e( 'Members', 'buddypress' ) ?></a></li> <?php if ( function_exists( 'groups_install' ) ) { ?> <li<?php if ( bp_is_page( BP_GROUPS_SLUG ) ) {?> class="selected"<?php } ?>><a href="<?php echo get_option('home') ?>/<?php echo BP_GROUPS_SLUG ?>" title="<?php _e( 'Groups', 'buddypress' ) ?>"><?php _e( 'Groups', 'buddypress' ) ?></a></li> <?php } ?> <?php if ( function_exists( 'bp_blogs_install' ) ) { ?> <li<?php if ( bp_is_page( BP_BLOGS_SLUG ) ) {?> class="selected"<?php } ?>><a href="<?php echo get_option('home') ?>/<?php echo BP_BLOGS_SLUG ?>" title="<?php _e( 'Blogs', 'buddypress' ) ?>"><?php _e( 'Blogs', 'buddypress' ) ?></a></li> <?php } ?> <?php do_action( 'bp_nav_items' ); ?> </ul> </div>
Как сюда вставить кнопку «Профиль»?
Основы html знаете? Я вставил ссылку на профиль после пункта Новости (Blog на англ):
<div id="nav"> <ul id="nav"> <li<?php if ( bp_is_page( 'home' ) ) {?> class="selected"<?php } ?>><a href="<?php echo get_option('home') ?>" title="<?php _e( 'Home', 'buddypress' ) ?>"><?php _e( 'Home', 'buddypress' ) ?></a></li> <li<?php if ( bp_is_page( BP_HOME_BLOG_SLUG ) ) {?> class="selected"<?php } ?>><a href="<?php echo get_option('home') ?>/<?php echo BP_HOME_BLOG_SLUG ?>" title="<?php _e( 'Blog', 'buddypress' ) ?>"><?php _e( 'Blog', 'buddypress' ) ?></a></li> <?php if ( is_user_logged_in() ) { <li><a href="<?php bp_get_loggedin_user_link() ?>">Профиль</a></li> }else{ #ваша ссылка, которая отображается вместо ссылки, если чел неакторизован. Или ничего, тогда удалите эту строку. } ?> <li<?php if ( bp_is_page( BP_MEMBERS_SLUG ) ) {?> class="selected"<?php } ?>><a href="<?php echo get_option('home') ?>/<?php echo BP_MEMBERS_SLUG ?>" title="<?php _e( 'Members', 'buddypress' ) ?>"><?php _e( 'Members', 'buddypress' ) ?></a></li> <?php if ( function_exists( 'groups_install' ) ) { ?> <li<?php if ( bp_is_page( BP_GROUPS_SLUG ) ) {?> class="selected"<?php } ?>><a href="<?php echo get_option('home') ?>/<?php echo BP_GROUPS_SLUG ?>" title="<?php _e( 'Groups', 'buddypress' ) ?>"><?php _e( 'Groups', 'buddypress' ) ?></a></li> <?php } ?> <?php if ( function_exists( 'bp_blogs_install' ) ) { ?> <li<?php if ( bp_is_page( BP_BLOGS_SLUG ) ) {?> class="selected"<?php } ?>><a href="<?php echo get_option('home') ?>/<?php echo BP_BLOGS_SLUG ?>" title="<?php _e( 'Blogs', 'buddypress' ) ?>"><?php _e( 'Blogs', 'buddypress' ) ?></a></li> <?php } ?> <?php do_action( 'bp_nav_items' ); ?> </ul> </div>
slaFFik, выдает ошибку — Parse error: syntax error, unexpected ‘<‘ in …
А если вставляешь просто
<li><a href="<?php bp_get_loggedin_user_link() ?>">Профиль</a></li>
, то ошибку не выдает, но и не работает, то есть, когда ты переходишь во вкладку «группы», а потом нажимаешь на профиль — ни чего не происходит, мы остаемся во вкладке группы. Засада…. Мож. все не так просто…. а, slaFFik ???
И еще….<?php if ( is_user_logged_in() ) { <li><a>">Профиль</a></li> }else{ #ваша ссылка, которая отображается вместо ссылки, если чел неакторизован. Или ничего, тогда удалите эту строку. } ?>
От сих до сих я должен удалить чтобы не отображалось ни чего ….?
Скорее всего, нужно добавить
echo
для вывода:<a href="<?php echo bp_get_loggedin_user_link() ?>">Профиль</a>
SergeyBiryukov, slaFFik, спасибо, и как теперь к этому коду (ниже)
<li><a href="<?php echo bp_get_loggedin_user_link() ?>">Profile</a></li>
добавить строчку о том, что если участник не авторизован, показывается кнопка «войти», или вообще никакой, т.е. и не профиля? Спасибо. + если находишься в профиле — кнопка «профиль» была активной …
А сразу сформулировать задачу вы не могли или было влом буковки набирать?
Atrax, sorry. Сначала решил, что это будет универсальный код….( ЗХотя задача та же: чтобы в «хедере» темы была кнопка «профиль», которая, если участник авторизован ведет к профилю, если не авторизован — к авторизации. Интересует и главная тема и тема «мембер». Соответственно, когда участник авторизован и находится в профиле, кнопка профиль «подсвечена»…. Извините если туплю. Это единственная проблема, которую не смог решить сам… остальные методом тыка и экспериментов решал и не задавал глупых вопросов. Спасибо.
Попробуйте вот это (писал мимоходом, проверьте синтаксис — Сергей или Atrax — отредактируйте, если ошибся):
<?php if ( is_user_logged_in() ) { ?> <li<?php if ( bp_is_page( $bp->default_component ) ) : ?> class="selected"<?php endif; ?>><a href="<?php echo bp_get_loggedin_user_link() ?>">Профиль</a></li> <?php }else{ ?> <li><a href="<?php echo get_option('siteurl') ?>/wp-login.php">Войти</a></li> <?php } ?>
Спасибо, slaFFik и всем кто помог. Заработало…..)
Раз уж затронули тепу профиля, Вы не знаете, можно ли ограничть доступ участников в консоль? Что бы кроме профиля buddypress других возможностей у них не было, а то боюсь запутуются…) Спасибо.Например, чтобы после wp-login.php участников перекидывало на главную страницу основной темы или профиль «мембер» темы, а не в …/wp-admin/
- Тема «Ссылка, код, адрес … на профиль. Помогите.» закрыта для новых ответов.