Поместите этот код в sidebar.php
Результат: пользователи могут логиниться с любой страницы сайта, при этом не попадают в админку, а оказываются на той же странице сайта и могут видеть, под каким ником они залогинены.
<?php
global $user_ID, $user_identity;
get_currentuserinfo();
if (!$user_ID):
?>
<h5>Вход</h5>
<form name="loginform" id="loginform" action="<?php echo get_settings('siteurl'); ?>/wp-login.php" method="post">
<div><label>Логин:<br /><input type="text" name="log" id="log" value="" size="20" tabindex="7" /></label><br />
<label>Пароль:<br /> <input type="password" name="pwd" id="pwd" value="" size="20" tabindex="8" /></label><br />
<input type="hidden" name="rememberme" value="forever" />
<input type="submit" name="submit" value="войти »" tabindex="9" />
<?php wp_register('', ''); ?>
<input type="hidden" name="redirect_to" value="<?php echo $_SERVER['REQUEST_URI']; ?>"/></div>
</form>
<?php
else:
?>
<h2><?php echo $user_identity; ?></h2>
<ul>
<?php wp_register(); ?>
<li><a href="<?php echo get_settings('siteurl') . '/wp-login.php?action=logout&redirect_to=' . $_SERVER['REQUEST_URI']; ?>">Выйти</a></li>
</ul>
<?php
endif;
?>
Вариант попроще:
<? php wp_register(); ?>
<? php wp_loginout(); ?>
Что то я непонял, а что должно измениться? все как обычно 🙁
Прошу прощенья… разобрался. Вставлял не в шаблон sidebar.php, а в админку 😉
sonika! Огромное спасибо! То, что было нужно! Респект! 🙂
Почему мой пост прибили? Я спросил про вылезшие баги непонятно откуда… а посто то зачем прибивать было? Может кто и ответил бы…
А можно поподробне для чайников?
– В какой папке этот sidebar.php (там их действительно несколько)
– в какое именно место в нём надо вставлять код
– пробовал вставить везде где можно, но изменений не вижу
у меня 2.2.3 версия
все изменения вносятся в файлы Темы. В какое место вставлять — решать Вам, в какое нужно, в такое и вставляйте.
Вообще то у меня в виджете "управление" видно кто залогинился, но логиниться по ссылке из этого виджета приходится через отдельную страницу и потом в админку попадаешь…хотелось бы на той же странице оставаться и не уходить с неё никуда
беда( в wp mu не работает, вставляю в файл темы sidebar.php
sonika, это то что надо! Спасибо! 🙂 Но вот незадача, при установке кода в sidebar.php слетают оба sidebar, сайт грузится а ни одной колонки как небыло. 🙁
Как думаешь в чем проблема?
а можно это как нить в плагин превратить? или только ручками
Не туда вставили, наверно. Места под виджеты начинаются так (к примеру, могут быть немного разные вариации в звисимости от Темы):
и заканчиваются так:
вот и вставьте вне этой зоны. про css не забудьте, если криво блок вставится.
А какой смысл? Что тут ручками? Скопировать отсюда и вставить в шаблон — это тяжело что ли? 🙂
Я вставил код в текстовый виджет (перед этим активировал плагин на использование php в виджетах) и выходит такая ошибка
Parse error: parse error, unexpected T_STRING in /…/www/wp-content/plugins/exec-php/runtime.php(41) : eval()’d code on line 1
Что за беда?
В текстовый виджет вставлять можно только тексты/html.
Для вставки php есть аналог – samsarin-php-widget
А в шаблон страницы через плагин Ушки?
Я вставил, форма появилась, но выбрасывает на страницу типа сайт/%3C?php%20echo%20get_settings(‘siteurl’);%20?%3E/wp-login.php
Нафига, спрашивается, вставлять через ушки то, что не будет никогда изменяться из админки? Это уже не через ушки, а через другое место получается. Проще надо быть, проще. 😉
Бугага! Спасибо! 🙂 Я попробую….
а как убрать ссылку "администрирование"
чтобы было только войти, регистрация и выйти ?
Откуда убрать?
соответсвенно из слайдбара
при таком подходе после входа/выхода пользователи будут переадресованы обратно на страницу, с которой запросили операцию
….
Ну, кавычки не хватает. Неужто сами не можете добавить?
спасибо за подсказку: php не знаю, но разобрался. Вот правильная строка кода
однако это не решило проблемы:
ссылка "администрирование" по прежднему висит для тех, кто вошел в систему. администрирование нужно скрыть.
А попробуйте выбросить <?php wp_register(); ?>
блин, собственно ради чего правил и забыл выкинуть. кхе, бывает
Доброго времени суток.
Не получилось у меня поставить код из первого сообщения. Ни в футере, ни в сайтбаре.
Всё вставляется и ничего портит пока нет
"<?php
else:
?>
и тег (?>) в
<?php
global $user_ID, $user_identity;
get_currentuserinfo();
if (!$user_ID):
?>
закрывается ДО get_currentuserinfo();
В пхп я не силен, поэтому разобраться не получилось. Подскажите как бы это устроить.
А вообще порылся немного, нашел сайтик http://www.habrahabr.ru/ похоже тоже на ВП. Утверждать не могу, т.к. всего неделю назад себе его поставил 🙂 Так вот, обратите внимание как там сделана форма авторизации и собственно регистрация. Это плагин такой или руки прямые? Как сделать нечто подобное?
Вобщем вопрос решил, полазив по форуму, с помощью ajax-login. Ещё хотелось бы посмотреть themed-logreg что за зверь, но нигде не могу найти. Поделитесь, у кого есть. Спасибо.
Может Themed Login?
Возможно, но здесь Вы упомянули именно themed-logreg. И здесь его тоже не так давно рекомендовали. А всё что я добился от поисковиков – это папки с названием themed-logreg и файлом themed-logreg.php в них 😀
Если Вы пойдете по ссылке "Themed Login", которую я дал выше, то обнаружите на странице ссылку на архив themed-logreg.zip. Просто имя архива/файла отличается от заголовка страницы.
Понял, спасибо.
У меня в теме sidebar.php такой:
<div id="sidebar">
<div class="side1">
<ul>
<?php if ( function_exists(‘dynamic_sidebar’) && dynamic_sidebar(1) ) : else : ?>
<?php wp_list_pages(‘title_li=<h2>Страницы</h2>’ ); ?>
<li class="blockr">
<h2>Архивы
</h2>
</li>
<li class="blockr">
<ul>
<?php wp_get_archives(‘type=monthly’); ?>
</ul>
</li>
<?php wp_list_categories(‘show_count=1&title_li=<h2>Категории</h2>’); ?>
<?php endif; // end 1 Dynamic Sidebar ?>
</li>
</div>
</div>
</div> <!– end left –>
<div id="right">
<div class="side2">
<ul>
<?php if ( function_exists(‘dynamic_sidebar’) && dynamic_sidebar(2) ) : else : ?>
<li class="blockr">
<h2>Найти на сайте</h2>
<?php include (TEMPLATEPATH . ‘/searchform.php’); ?>
</li>
<?php /* If this is the frontpage */ if (is_home()) { ?>
<?php wp_list_bookmarks(); ?>
<?php } ?>
<li class="blockr">
<h2>Мета</h2>
<ul>
<?php wp_register(); ?>
<li>
<?php wp_loginout(); ?>
</li>
<?php wp_meta(); ?>
</ul>
</li>
<?php endif; // end 1 Dynamic Sidebar ?>
</ul>
</div>
</div>
Делал все рекомендации по теме но при изменениях отваливаются оба сайдбара
найдите плагин ajax login (как-то так называется)
Лучше всего вышло когда поменял код в widgets.php
Проблемка появилась только, при входе выбрасывает в основную форму, и говорит что ОШИБКА: WordPress использует cookies, а ваш браузер их либо не поддерживает, либо блокирует.
До этого проблемм не было…:/
А я все время твержу, что хаки – это плохо. 😀
Попробую вернуть на место и посмотреть, просто по другому не шло…
Но всё же использовал вот это из выше опубликованного и всё стало без проблем и так как надо…( там же в widgets.php)
Где то видел тему сейчас не могу найти! Сделал все как тут советуют, юзеры регистрируются каждый день по 2-3 чела, но не постят, в чом может быть проблема???
Отличное дополнение к WP !!!
Вопрос есть один только… как сделать, чтобы при не верно вводе логина или пароля
не перенаправляло бы на стандартную форму авторизации, а над формой на сайте
писалось бы об ошибке просто?
Заранее спасибо 😉
Я ничего в файлах движка не менял, но у меня та же ошибка выходит при вводе логина и пароля, как от нее можно исбавиться? 🙁 Помогите, пожалуйста… аякслогин пожалуйста не предлагать, я там умру подгоняя его под дизайн сайта…. у меня WP 2.3.3
Ну помогите, пожалуйста 🙁
Скажите пожалуйста насколько хорош плагин AJAX Login с точки зрения безопасности
ПС
Заранее благодарен
Если кто пользуется этим способом вывода формы входа на какую-либо страницу – у вас ошибка "ОШИБКА: WordPress использует cookies, а ваш браузер их либо не поддерживает, либо блокирует." не выскакивает? Причем не всегда, чаще заходит успешно.
вп 2.3.3
через wp-login.php всегда входит нормально, насчет куков и не заикается.
В чем может быть причина?
Может быть потому, что у меня IP динамический?
Подозреваю, что проблема в wordpress_test_cookie. wp-login.php ставит эту куку сразу, а по вводу логина/пароля проверяет ее наличие. Если старница с формой не выставила эту куку, то WP будет ругаться. Если перед здоровканьем со страницы заскочить на wp-login, то кука будет и всё пройдет гладко. Думаю, что так.
да, так и есть – после выбрасывания на wp-login.php с этой ошибкой авторизация с морды проходит на ура.
вот черт 🙁 так все красиво получилось с входом, и тут такой неожиданный косяк…
Попробуй добавить в шаблон страницы (в самое начало)
<?php setcookie(‘wordpress_test_cookie’, ‘WP Cookie check’, 0, ‘/’); ?>
Или вообще в header.php
неа, все равно такая же ошибка…
попробую плагин sidebarLogin – там что-то в коде много про куки, выдрать мне проблематично, так что я лучше прямо виджет и вставлю в нужное место!
а там то же самое, что в wp-login.php:
я уже пихала это сразу после <body> – ноль эмоций, видимо это не весь важный код для кук.
UPD засунула в functions.php – вроде ура! пойду на всех компах проверю.
UPD работает! 🙂
Это надо пихать до всего, setcookie и header должны сработать до первой буквы.
Понятно, спасибо! А в functions.php — это плохо? Лучше в header.php или без разницы?
Можно и в functions. Всей разницы, что так будет выполняться и в админке, трафик на пятьдесят байт больше будет. 🙂
Не подскажете ли, где именно этих кавычек не хватает (Parse error: syntax error, unexpected T_STRING, expecting ‘,’ or ‘;’)? В варианте, чтобы обратно на страницу возвращалось. Я что-то не смог… слабоват в PHP.
А ajax-login у меня встал вроде как положено, симпатично, но… работать отказывается. Вообще не реагирует на кнопку ввода.
Странный ты человек однако 😀 не видя кода, сказать где ты накуралесил? хмм ясновидящих думаю нет…
более того, даже видя код никто не возьмется. Бери код, сравнивай, и с начала, как все делали и делают!
А кто сказал, что будет просто 😆
Ну вот только не надо тут пальцы растопыривать. Я понимаю, что Вы давненько тут не были и уже не помните о чем речь, но я ссылался на УЖЕ ОПУБЛИКОВАННОЕ в этом топике (могли бы и прочитать сначала), на первой странице, отсюда http://forum.maxsite.org/viewtopic.php?pid=15615#p15615 и дальше. Сомневаюсь, что разумно мне все это цитировать в моем сообщении.
неделю назад отсюда копировала код и вставляла на живой сайт. Все прошло гладко.
Спасибо, sonika, этот-то код у меня работает без проблем, просто я так понял, что во втором коде есть какая-то дополнительная фича и хотел попробовать.
Еще 3 варината логина/ регистрации без входа в админку:
http://mywordpress.ru/support/viewtopic.php?pid=25216#p25216
Проблема с плагином ajax-login:
При попытке зарегистрироваться выскакивает окошко "Ответ на вопрос не получен".
Что бы это значило?
Можно ли такое сотворить:
Если введен неправильный логип-пароль то не перенаправляет нас другую страницу, а выдает ту же форму и туже страницу, только над формой небольшая надписть типа: Ошибка. Повторите вход!
Спасобо, установил samsarin-php-widget и в него вставил код 🙂 работает как надо, вот только размерчики поменял немного 🙂