👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →
Есть один вопрос, с которым я не могу самомстоятельно разобраться.
Думаю, для гуру WP эта проблема решаема за 5 минут. Суть такова: для авторизованых пользователей, на всех страницах сайта, в шапке, выводится ник пользователя. При клике на ник выпадет меню с пунктами «профиль» и «выйти». Для гостей на этом же месте отображаются две ссылки – вход и регистрация.


Примерно так:
<?php global $user_ID, $user_identity; get_currentuserinfo(); $ruri = $_SERVER['REQUEST_URI']; if (!$user_ID) : ?> <a href="<?php echo get_settings('siteurl') . '/wp-login.php?redirect_to=' . $ruri; ?>" title="Войти в блог">вход</a> <a href="<?php echo get_settings('siteurl'); ?>/wp-login.php?action=register" title="Зарегистрироваться в блоге">регистрация</a> <?php else : ?> <a href="<?php echo get_settings('siteurl'); ?>/wp-admin/profile.php" title="Открыть ваш профиль"><?php echo $user_identity; ?></a> <a href="<?php echo get_settings('siteurl'); ?>/wp-login.php?action=logout" title="Выйти">выход</a> <?php endif; ?>Два вопроса:
1) Почему не is_user_logged_in(), как рекомендует кодекс?
2) Зачем $ruri = $_SERVER[‘REQUEST_URI’] ?
Почему-то этот код ничего не выводит для гостей. Для авторизованных всё хорошо.
Попробуйте так:
<?php if (!is_user_logged_in()) : ?> " title="Войти в блог">вход /wp-login.php?action=register" title="Зарегистрироваться в блоге">регистрация <?php else : ?> /wp-admin/profile.php" title="Открыть ваш профиль"><?php global $current_user; get_currentuserinfo(); echo $current_user->user_identity; ?> /wp-login.php?action=logout" title="Выйти">выход <?php endif; ?>Или даже так (переписал, как мне привычней, хотя разницы быть не должно никакой):
<?php if (is_user_logged_in()) { ?> /wp-admin/profile.php" title="Открыть ваш профиль"><?php global $current_user; get_currentuserinfo(); echo $current_user->user_identity; ?> /wp-login.php?action=logout" title="Выйти">выход <?php } else { ?> " title="Войти в блог">вход /wp-login.php?action=register" title="Зарегистрироваться в блоге">регистрация <?php } endif; ?>