Разные виджеты на разных страницах

Сегодня хочу рассказать об использовании разных виджетов на разных страницах вашего сайта. Или блога 🙂 хотя, мне кажется, для тех, кто создает сайт на WordPress это более актуально. Идея проста – как и в прошлой инструкции http://4itaz.ru/wordpress-pokazyvat-tolko-dlya-admina/ – создание нескольких сайдбаров и показ их на разных страницах. Инструкция здесь http://4itaz.ru/raznye-vidzhety-na-raznyx-stranicax/

Все замечательно, кроме одной мелочи. Если у меня только один виджет «ссылки», то я могу разместить его только на один сайдбар.

хм.. как вариант – дубблировать виджет, или, например, сделать несколько текстовых виджетов. Однако, не слишком удобно, если ссылки в них часто обновляются. Но если нет – то самое оно )
Или находим виджет, который может выполнять PHP (например http://www.daikos.net/widgets/daikos-text-widget/ или http://samsarin.com/samsarin-php-widget) и внутри прописываем

<?php get_links(); ?>

Ну сдублировать виджет не так и просто. 😉

Я сам давно столкнулся с этой же проблемой, потому что некоторые клиенты хотят, чтобы сайдбары менялись в зависимости от типов страниц, рубрик или по каким-то другим условиям. Поэтому простым добавлением сайдбаров дело не обходится. Сейчас решается задача немного по другому – настраиваются все виджеты, а вывод в сайдбарах (в шаблоне) осуществляется через php-функции (виджетов – типа: wp_widget_text). таким образом в шаблоне можно конфигурировать вывод функций под любые условия. Правда здесь теряется некоторая гибкость в настройках. Как доведу код до ума, выложу у себя в блоге.

я попробовал сделать как описано тут http://maxsite.org/otobrazhenie-vidzhetov-v-saydbarah-pri-raznyih-usloviyah
Было такое ощущение, что правила отображения виджетов просто игнорировались. К примеру я задал не показвать на главной календарь, а он всё равно показывался. Потом я вспомнил, что в настройках блога (Настройки чтения) указал, что на главной странице нужно отображать статическую страницу, а не последние 10 записей. Поэтому и получается такая ерунда с виджетами. Попробовал изменить настройки: вернул на главную "последние 10 записей" и всё стало на свои места… Но мне очень нужно чтобы первой страницей была именна та которую я указал. В php я слабо разбираюсь, без вашей помощи не смогу разобраться… :rolleyes:

http://forum.maxsite.org/viewtopic.php?id=576

Подскажите пожалуйста, а где можно найти и отредактировать содержимое виджетов? Скажем, сейчас при выводе виджета у меня следующий код

 <div id="sidebar">
            Страницы        <ul>
            <li class="page_item page-item-5"><a title="страница один" href="http://">страница один</a></li>
<li class="page_item page-item-3 current_page_item"><a title="страница два" href="http://">страница два</a></li>
        </ul>

Мне хотелось бы внести изменения в html, где это можно сделать?

http://maxsite.org/ras31
ну и «до кучи»:
http://maxsite.org/ras32
http://maxsite.org/ras33

sonika, спасибо за ссылки. кое что я уже читал и пытался применить.
чисто интуитивно пытался сделать так:

 
<?php
register_sidebar(array(
    'name' => 'Настроки виджетов',
    'before_widget' => '<div class="widget"> ',
    'after_widget' => '</div>',
    'before_title' => '<h1>',
    'after_title' => '</h1>')
);

Странно. но результатов это не дало.
Насколько понял мне придётся вручную править всё внутри достаточно объёмного wp-includes/widgets.php?

может ctrl+F5?

sonika, ))) я сказал что в php только не разбираюсь. обновить страничку умею )))
Нет, тут что-то другое…
Вообщем, мне пока не удалось забраться внутрь самого виджета через файл function.php (код в нём в моём посте чуть выше) Через него могу только изменять эту строчку ‘name’ => ‘Настройка виджетов’. Но это видно только в админской панели, так что не особо полезно. Все остальные параметры игнорируются, как бы я их не менял…
С кодом который ВНЕ виджета всё проще, тут я разобрался вроде, писал наугад, так как не знаю синтаксиса но вроде всё работает
sidebar.php:

<?php if ( !is_page("page") ):?>
<div class="widget"> <?php wp_widget_recent_comments(array());?></div>
<div class="widget"> <?php wp_widget_tag_cloud(array()); ?></div>
<div class="widget"> <?php wp_widget_calendar(array()); ?></div>
<?php endif; ?>

Кстати заметил что в виджете в основном инфа выводится ненумерованным списком (UL) , например те же ссылки в recent_comments. А если я хочу чтобы они выводились нумерованным списком (OL)?
Через function.php это править не получится вроде… То есть всё же надо лезть в wp-includes/widgets.php?

Не обижайтесь 🙂

Anonymous
Отправить
Ответ на: