Маленький перерыв в темах про фотографию — сегодня интересная заготовка для wordpress, которую я подсмотрел на Blog Oh! Blog — раскрывающаяся панель авторизации. Давно хотел включить возможность регистрации на сайте, чтобы потом посетители могли использовать учетные данные и на форуме. Вот как раз и вполне функциональное решение без лишних плагинов. Я перевел поля на английском, на тестовом блоге все вполне прилично заработало, думаю, что в скором времени появится и тут.
Результат можно увидеть по ссылке (откроется в новом окне). В принципе панельку можно разместить в любом месте, но в примере она появляется в самом верху страницы. У панельки есть некоторое неудобство, она открывается не поверх контента, а отодвигая его вниз, возможно есть какое-то решение, но пока во всяком случае в голову не пришло.
Итак, для работы нам понадобится файл header.php из текущей темы. В нем, перед закрывающим тэгом «head», нужно вставить следующий код:
<script type=»text/javascript» src=»http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js»></script>
<script type=»text/javascript»>
$(document).ready(function(){
$(«.btn-slide»).click(function(){
$(«#slide-panel»).slideToggle(«slow»);
});
});
</script>
Единственное изменение — я бы скачал файл «jquery.min.js" и положил бы к себе на сервер, мне кажется, что так получится логичнее.
Теперь в том же файл, прямо после тэга «body» вставляем код самой панели со всеми необходимыми процедурами авторизации:
<div id=»slide-panel»><!—SLIDE PANEL STARTS—>
<?php if ( ! is_user_logged_in() ){ ?>
<h2>Login</h2>
<div class=»loginform»>
<div class=»formdetails»>
<form action=»<?php echo get_option(‘home’); ?>/wp-login.php» method=»post»>
<label for=»log»>Username : </label><input type=»text» name=»log» id=»log» value=»<?php echo wp_specialchars(stripslashes($user_login), 1) ?>» size=»20″ />
<label for=»pwd»>Password : </label><input type=»password» name=»pwd» id=»pwd» size=»20″ />
<input type=»submit» name=»submit» value=»Войти» class=»button» />
<label for=»rememberme»><input name=»rememberme» id=»rememberme» type=»checkbox» checked=»checked» value=»forever» /> Запомнить</label><input type=»hidden» name=»redirect_to» value=»<?php echo $_SERVER[‘REQUEST_URI’]; ?>» />
</form>
</div>
<div class=»loginregister»>
<a href=»<?php echo get_option(‘home’); ?>/wp-register.php»>Регистрация</a> |
<a href=»<?php echo get_option(‘home’); ?>/wp-login.php?action=lostpassword»>Восстановить пароль</a>
</div>
</div><!—loginform ends—>
<?php } else { ?>
<div class=»loginform»>
<h2>Control Panel</h2><ul>
<li><a href=»<?php echo get_option(‘home’); ?>/wp-admin/»>Панель управления</a></li> |
<li><a href=»<?php echo get_option(‘home’); ?>/wp-admin/post-new.php»>Новая запись</a></li> |
<li><a href=»<?php echo get_option(‘home’); ?>/wp-admin/page-new.php»>Новая страница</a></li> |
<li><a href=»<?php echo wp_logout_url( get_bloginfo(‘url’) ); ?>» title=»Logout»>Выйти</a></li></ul>
</div><!—loginform ends—>
<?php }?>
</div><!—SLIDE PANEL ENDS—>
<div class=»slide123″><a href=»#» class=»btn-slide»><?php if ( ! is_user_logged_in() ){ ?>Войти<?php } else { ?>Выйти<?php }?></a></div><!—LOGIN BUTTON TEXT—>
Вобщем-то это и все, осталось только добавить нужные стили в style.css установленной темы.
* {margin:0; padding:0; outline:0;}
#slide-panel{ background-color:#000;border-bottom-style:solid;border-bottom-width:2px;display:none;height:100px;margin:auto;}
.slide123 {width:950px; margin:auto;}
.btn-slide:link, .btn-slide:visited{color:#fff; float:right; display:block;font-size:14px; text-transform:uppercase; font-weight:bold;height:26px; padding:3px 0 3px 0;line-height:22px;text-align:center;text-decoration:none;width:100px; background-color:#000; font-family:Arial;}
.loginform {width:950px; margin:auto; color:#999; font-family:Arial, Helvetica, sans-serif;}
.formdetails {color:#FFF; font-size:12px;padding:5px;}
.formdetails input{border:none; padding:2px 5px 2px 5px; background-color:#EFEFEF;}
.loginregister {color:#999; padding:5px;}
.loginregister a:link, .loginregister a:visited {color:#FFF; font-size:11px; text-decoration:underline;}
.loginform h2 {padding:10px 10px 10px 0; font-size:18px; font-weight:normal; text-transform:uppercase;}
.loginform ul li {display:inline;}
.loginform ul li a:link, .loginform ul li a:visited {color:#FFF; font-size:12px; text-decoration:underline;}
Единственная сложность, которая может возникнуть — неправильная работа скрипта, если у вас уже установлена аналогичная панель или слайд-шоу или что-то подобное. В моем случае все решилось переименованием повторяющихся стилей и больше никаких конфликтов не наблюдалось.
Ссылка на исходник:
статья How to Build a Top Sliding Login Panel (на английском).
Глеб says:
Ноя 8, 2011
Здравствуй Александр.
У меня 2 вопроса, Ваши кнопки Like встроены по-отдельности или это плагин? тогда какой? я использовал Social Share Buttons, но кнопки размещаются друг под другом, а хотелось бы, чтобы они были расположены в одну строку, как у Вас.
И можете ли Вы скинуть код в комментарии на кнопки Share(вк фейсбук)
свои удалил в такой же теме WP, никак не получается восстановить
Заранее спасибо за помощь!
И я бы с радостью с вами пообщался в будущем, если это возможно, на тему этого шаблона и его развития, на перспективу :) в icq и skype не отвечаете.
xela says:
Ноя 9, 2011
Глеб, добрый день.
Я как-то последнее время мало занимаюсь шаблоном.
Как расположить кнопки горизонтально описано на сайте плагина, который вы указали.
Код Share — это «мне нравиться»? Брал на сайтах социалок.
В скайпе практически не бываю, в аське можно отловить :).
Глеб says:
Ноя 9, 2011
Share это квадратики над статьей :) Твиттер, вк, фейсбук. это в теме по умолчанию уже есть, просто я как-то снес ее )) не могу восстановить. хотя надо исходники темы полистать )
Но это ладно, бог с ним) вот у меня комментарии справа ничем не ограничиваются, и вылазят за линию в боковую колонку сайта( как с этим бороться?
xela says:
Ноя 9, 2011
править стили.
ICDM says:
Окт 29, 2013
Спасибо за статью :good:
badull says:
Ноя 10, 2013
Здравствуйте! не могу найти у Вас на сайте кнопку «войти». не выскакивает как раньше…. как с этим бороться! спасибо. или вы отключили такую возможность? спасибо. пробовал на нескольких браузерах. :cry:
xela says:
Ноя 13, 2013
Есть такое, убрал, т.к. было много попыток через регистрацию попортить сайт. Пока никто не жаловался, ведь возможность комментирования никуда не делась. Но если нужно, то можно и вернуть, главное, чтобы был смысл.