Настройка виджетов входа и меты.

Нашел два интересных для меня плагина:

Первый я нашел сам, второй понравился у друга в блоге, я спросил название, он подсказал :)

Более детальное описание:

  • первый плагин, 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
    21
    function 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 ( модифицированная мета).

Вообще я логику видел следующей:

  1. меню customize meta widget и меню login box называем одинаково
  2. заходим на страничку и видим только меню от login box ("Вход" и "Регистрация")
  3. авторизовываемся в удобной форме
  4. меню от login box  исчезает, а customize meta widget появляется
  5. видим только меню 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;?&gt;

&lt;ul&gt;
&lt;?php wp_register(); ?&gt;
&lt;li&gt;&lt;?php wp_loginout(); ?&gt;&lt;/li&gt;
&lt;?php wp_meta(); ?&gt;
&lt;/ul&gt;

&lt;?php $after_widget;
}
}

После такого изменения я получил желаемый результат: авторизовавшемуся - "Профиль" и "Выход", не авторизовавшемуся - удобное меню авторизации (или регистрация, но она аналогична стандартной).

p.s. Если что сделал не так, просьба камнями не кидать... все когда-то учатся, а решение рабочее.

  • Trackback закрыты
  • Комментариев: (6)
  1. Спасибо за первый ^_^

  2. а не за что… кстати у Артема такой же логин бокс стоит, почему я его не заметил?! авторизация на его блог у меня дома на компе, дома на ноуте и на работе на компе в браузерах сохранена… наверное по этому и не заметил :(

  3. Он тогда еще поди не ввел его использование, а потом увидел (;

  4. Блин, сегодня (30.07.09) обновился плагин CODECOLORER… теперь код не отображается, вместо этого написано ::CODECOLORER_BLOCK_2:: и т.д. блин… вот нужны ли мне были эти проблемы?!

  5. У меня сразу был плагин “Блокировка запросов на новые версии”, найти можно тут http://lecactus.ru/

  6. Новое обновление плагина вышло, проблема с неотображением исчезла…
    на дворе 08.09.09

Вы должны быть авторизованы чтобы оставлять комментарии.