Настройка виджетов входа и меты.
- Июль 28th, 2009
- Опубликовано в WordPress
- Павел Горлов
- Комментировать
Нашел два интересных для меня плагина:
- customize-meta-widget - позволяет настраивать мету.
- login-box – удобное меню авторизации.
Первый я нашел сам, второй понравился у друга в блоге, я спросил название, он подсказал
Более детальное описание:
- первый плагин, customize meta widget, содержит код, ручная правка которого позволяет отредактировать список меты. Например ссылка на wordpress.org уже убрана, а ссылки на свои RSS ленты я убрал сам, т.к. у меня уже есть предусмотренная темой менюшка. Плагин является виджетом, и используется вместо стандартного виджета “Мета”. Вот исходный код того участка плагина, с которым я работал (файл customize-meta-widget.php, функция wp_widget_meta_modified):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21function wp_widget_meta_modified($args) {
extract($args);
$options = get_option('widget_meta');
$title = empty($options['title']) ? __('Meta') : apply_filters('widget_title', $options['title']);
?>
<?php echo $before_widget; ?>
<?php echo $before_title . $title . $after_title;
#WIDGET BEGINS HERE. PLEASE EDIT AS MUCH AS YOU WANT
?>
<ul>
<?php wp_register();?>
<li><?php wp_loginout(); ?></li>
<li><a href="<?php bloginfo('rss2_url'); ?>" title="<?php echo attribute_escape(__('Syndicate this site using RSS 2.0')); ?>"><?php _e('Entries <abbr title="Really Simple Syndication">RSS'); ?></a></li>
<li><a href="<?php bloginfo('comments_rss2_url'); ?>" title="<?php echo attribute_escape(__('The latest comments to all posts in RSS')); ?>"><?php _e('Comments <abbr title="Really Simple Syndication">RSS'); ?></a></li>
<?php wp_meta(); ?>
</ul>
<?php
#WIDGET ENDS HERE.
echo $after_widget;
}Для того чтобы убрать ссылки на RSS я просто удалил строки 13 и 14. Понятно что вместо ссылок на RSS, или просто дополнительно к ним сюда можно добавить что угодно. Единственный момент, смутивший меня, это то, что в отличие от стандартного виджета “Мета”, этому нельзя присвоить заголовок из консоли. Делается это вручную путем редактирования строки 4. Думаю если бы я сразу начал использовать стандартный виджет, задав ему нужный заголовок, а потом, при подключении этого, переместил его в отключенные, то заголовок стандартного подцепился бы…
- второй плагин, login box, позволяет авторизоваться не переключаясь на стандартное окно входа wordpress'а. Применяется как виджет, содержит заголовок и две ссылки, одну на разворачивающееся меню авторизации, вторую для перехода на страницу регистрации. После авторизации пользователь остается на той же странице что и был, а виджет скрывается.
В чем минусы этих плагинов? При совместном использовании, до авторизации, пользователь видит меню customize meta widget (модифицированной меты), и меню плагина login box, каждое из которых содержит пункты "Вход" и "Регистрация"... После авторизации остается только customize meta widget ( модифицированная мета).
Вообще я логику видел следующей:
- меню customize meta widget и меню login box называем одинаково
- заходим на страничку и видим только меню от login box ("Вход" и "Регистрация")
- авторизовываемся в удобной форме
- меню от login box исчезает, а customize meta widget появляется
- видим только меню customize meta widget (у меня это "Профиль" и "Выход")
Тут даже появляется определеная гибкость. Это я назвал обе менюшки одинаково, но ведь в коде customize meta widget можно titel присвоить, например, ник авторизовавшегося пользователя. Будет красиво.
Как я это делал.
В PHP я почти ноль, т.е. имея опыт и навыки работы с другими языками программирования, я достаточно легко понимаю написанное на PHP, могу немного править, но всеравно лезу в тех. литературу. Вобщем после недолгих изысканий я нашел в файле login-box-widget.php строчку кода:
1 | if (!is_user_logged_in()) { |
Понятно что тут написано: "если пользователь не авторизовался, то..". Для customize meta widget соответственно я должен был где-то в коде включить условие обратное этому. Итоговый код в файле customize-meta-widget.php (функция wp_widget_meta_modified) выглядит следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function wp_widget_meta_modified($args) { extract($args); $options = get_option('widget_meta'); $title = 'Навигация:'; if (is_user_logged_in()) { echo $before_widget; echo $before_title . $title . $after_title;?> <ul> <?php wp_register(); ?> <li><?php wp_loginout(); ?></li> <?php wp_meta(); ?> </ul> <?php $after_widget; } } |
После такого изменения я получил желаемый результат: авторизовавшемуся - "Профиль" и "Выход", не авторизовавшемуся - удобное меню авторизации (или регистрация, но она аналогична стандартной).
p.s. Если что сделал не так, просьба камнями не кидать... все когда-то учатся, а решение рабочее.



























Спасибо за первый ^_^
а не за что… кстати у Артема такой же логин бокс стоит, почему я его не заметил?! авторизация на его блог у меня дома на компе, дома на ноуте и на работе на компе в браузерах сохранена… наверное по этому и не заметил
Он тогда еще поди не ввел его использование, а потом увидел (;
Блин, сегодня (30.07.09) обновился плагин CODECOLORER… теперь код не отображается, вместо этого написано ::CODECOLORER_BLOCK_2:: и т.д. блин… вот нужны ли мне были эти проблемы?!
У меня сразу был плагин “Блокировка запросов на новые версии”, найти можно тут http://lecactus.ru/
Новое обновление плагина вышло, проблема с неотображением исчезла…
на дворе 08.09.09