Поддержка BuddyPress Ссылка, код, адрес … на профиль. Помогите.

  • Прошу помощи. Сил моих больше нет. Я убрал админскую панель — не подходит к дизайну сайта. Необходимо сделать кнопку в общем меню — там где участники, группы и т.д., которая будет переводить участника к его профилю в BuddyPress (там где аватар меняется, активность и т.д.). Не знаю как. Постоянного адреса у профиля нет, так как он зависит от зологиного участника. Коды просмотрел — не нашел. Помогите. Может кто уже выводил профиль на меню. Спасибо.

Просмотр 15 ответов — с 1 по 15 (всего 23)
  • Вот код (взят из файла 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{
    #ваша ссылка, которая отображается вместо ссылки, если чел неакторизован. Или ничего, тогда удалите эту строку.
    } ?>

    От сих до сих я должен удалить чтобы не отображалось ни чего ….?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Скорее всего, нужно добавить 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

    (@atrax)

    Ethical engineer

    А сразу сформулировать задачу вы не могли или было влом буковки набирать?

    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/

Просмотр 15 ответов — с 1 по 15 (всего 23)
  • Тема «Ссылка, код, адрес … на профиль. Помогите.» закрыта для новых ответов.