После нескольких эксперементов, все таки решил спросить напрямую.
Задача вывести в шапке строку, для незарегистрированных видят 2 ссылки: зарегистрироваться и войти.
Для зарегистрированных : Привет, Имя! Личный кабинет и миниаватарка.
Как четко и правильно сделать вывод во избежании всех возможных конфликтов?
никаких конфликтов не должно возникнуть, если у кода был верный синтаксис. За основу можно взять код виджета формы авторизации и регистрации из файла widget.php в папке плагина.
Там же можно видеть, что проверка авторизации пользователя производится путем проверки глобальной переменной $user_ID.
if($user_ID){
//пользователь авторизован
}else{
//пользователь неавторизован
}
Андрей, а можно здесь привести целиком этот код - для вывода в шапке кнопок "зарегистрироваться" и "войти"?
Думаю, многим пригодится. Гораздо более распространено именно в шапке размещать вход, а не в сайдбаре.
п.с. файл widget.php исследован, но там слишком сложно. Оказалось, это не две строчки на пхп скопировать(
Kugugur сказал(а)
Андрей, а можно здесь привести целиком этот код - для вывода в шапке кнопок "зарегистрироваться" и "войти"?
Думаю, многим пригодится. Гораздо более распространено именно в шапке размещать вход, а не в сайдбаре.п.с. файл widget.php исследован, но там слишком сложно. Оказалось, это не две строчки на пхп скопировать(
Все решается проще, обычными средствами wp:
<?php if ( is_user_logged_in() ) { echo 'Код для зарегистрированного, аватарка и логин обернутый в ссылку личного кабинета!'; } else { echo 'Текст для незарегистрированных, обернутый в ссылку на странице регистрации!'; } ?>
Шустрый Огурчик сказал(а)
Без шорткода,через get_avatar и userinfo стандартными средствами
Ни разу не приходилось читать кодекс вордпресса)
В итоге получилось так:
global $current_user;
get_currentuserinfo();
if ( is_user_logged_in() ) {
echo 'Привет, ' . $current_user->user_login . " n";
} else {
echo 'Авторизоваться с помощью:', get_ulogin_panel(0,false);
}
Не пойму, как вот это добро . $current_user->user_login . " n" обернуть ссылкой?
<div class="user_wiget"> <?php if(function_exists('wp_recall')){ // если включен плагин реколл включаем виджет пользоватля вверху global $user_ID; global $rcl_user_URL; global $rcl_options; if($user_ID){ // если авторизован пользователь echo '<div class="panel_lk_top">'; echo '<div class="name_top">' . $user_identity . '</div>'; echo '<div class="avatar_top">' . get_avatar($user_ID, 75) . '</div>'; echo '<div class="right_top"><p><a href="ссылка еще куда-то" title="Перейти куда-то еще">Мой приют</a></p>'; echo '<p><a href="'.$rcl_user_URL.'" title="Перейти в Личный кабинет">Личный кабинет</a></p>'; if(function_exists('rcl_get_rating_block')): $karma = apply_filters('rcl_get_all_rating_user_rcl',0,$user_ID); echo '<p>Рейтинг: '.$karma.'</p></div>'; endif; echo '<div class="exit_top"><a href="'.wp_logout_url( '/' ).'"><input type="button" value="'.__('Выйти','rcl').'"></a></div>'; echo '</div>'; } else { // не авторизован - выдаем форму реги и войти echo rcl_get_authorize_form(); } } else { // если не включен реколл - то ничего } ?> </div>
сейчас у меня работает этот код в хедере. вход для незарегенных, а для зарегенных ава, имя, ссылка на личный кабинет, еще одна произвольная ссылка, и рейтинг юзера. Давно выцепил из виджета Андрея, прописал условие чтоб не выдавало ошибок при отключенном реколл
Применяйте на свой страх и риск. Но вам я его не советую - я не буду его поддерживать 😉
Спасибо за код. Вот так получилось в итоге: <div class="user_wiget"> ПХП if(function_exists('wp_recall')){ // если включен плагин реколл включаем виджет пользоватля вверху global $rcl_user_URL; global $rcl_options; global $current_user; get_currentuserinfo(); if($user_ID){ // если авторизован пользователь echo ' <d iv class= " panel_lk_top " > '; echo ' <строка><a href= " ' .$rcl_user_URL. ' " title="Перейти в Личный кабинет " > ' . $current_user->user_login . ' </a></строка> ' ; echo ' <div class= " exit_top " ><a href= " ' .wp_logout_url( ' / ' ). ' " > Выйти</a></ d iv> ' ; echo ' < /d iv > ' ; } else { // не авторизован - выдаем форму реги и войти echo ' Авторизоваться с помощью : ', get_ulogin_panel(0,false); } } else { // если не включен реколл - то ничего } ПХП </div>