Зачем Вордпрессу виджеты?

Виджеты WordPress — это информационные блоки, которые располагаются в боковых сайдбарах, а также могут находиться в других местах, предусмотренных шаблоном. Поскольку блог на WordPress, так же как и Джумла блог или на любой другой CMS, является динамическим, то есть использует для хранения текстов базу данных и функционирует на программном php коде. Поэтому информационными блоками можно управлять непосредственно из администраторского раздела и проставлять их в любом подходящем для вас порядке и количестве. Удобство виджетов WordPress заключается еще и в том, что они работают на jQuery — они легко меняются местами перетягиванием мышкой, так что их расположение всегда наглядно контролируется.

Изначально в WordPress уже есть набор предустановленных виджетов, таких как RSS, Рубрики, Поиск, Календарь и другие. Есть также виджет, с помощью которого можно поместить в боковую колонку любой html код и текст.

wordpress виджеты

Находится страница управления виджетами по ссылке «Внешний вид — Виджеты»
Кроме этих предустановленных в WordPress виджетов, к большинству устанавливаемых сторонних плагинов так же прилагаются оные для отображения той или иной функциональной или статистической информации. Есть также и отдельные без плагина, также дающие возможность показать те или иные данные.

виджеты wordpress

Страница с виджетами разделена на три части. В основной (синяя на скрине) — все доступные на данный момент для использования. Во второй (зеленой) сайдбары, которые встроены в шаблон, с активными виджетами. В третьей (красной) — созданные и сохраненные, но в данный момент не активные.

работа с виджетами wordpress

Как я уже говорил, виджеты добавляются в сайдбары простым перетаскиванием мыши с зажатой левой кнопкой. Если хотите деактивировать один из них, но не потерять произведенные в нем настройки, то перетащите его из зеленой колонки в красную для неактивных. Если удалить насовсем со всеми изменениями — то в синюю.

С этим разобрались, теперь еще раз внимательно посмотрим на картинку на зеленую колонку. Как мы видим, в установленной на сфотографированном сайте теме оформления, созданы 5 сайдбаров для размещения виджетов. В каждый из них можно добавить неограниченное количество, в пределах разумного, конечно. Но если вы только установили шаблон и еще ни одного не добавили, то скорее всего будут отображаться предустановленные в шаблоне. Найти их можно в файле sidebar.php. Например, если открыть этот файл из входящей в стандартную сборку темы Twentyten, то увидите такой код:





<div id="secondary" class="widget-area" role="complementary">
			<?php if ( ! dynamic_sidebar( 'sidebar-1' ) ) : ?>

				<aside id="archives" class="widget">
					<h3 class="widget-title"><?php _e( 'Archives', 'twentyeleven' ); ?></h3>
					<ul>
						<?php wp_get_archives( array( 'type' => 'monthly' ) ); ?>
					</ul>
				</aside>

				<aside id="meta" class="widget">
					<h3 class="widget-title"><?php _e( 'Meta', 'twentyeleven' ); ?></h3>
					<ul>
						<?php wp_register(); ?>
						<li><?php wp_loginout(); ?></li>
						<?php wp_meta(); ?>
					</ul>
				</aside>

			<?php endif; // end sidebar widget area ?>
		</div>

В нем условие

if ( ! dynamic_sidebar( 'primary-widget-area' ) ) :

говорит о том, что показывать, если в сайдбаре с id primary-widget-area не находится ни одного виджета. В данном варианте будут отображаться Архив и Метки.

Немного отредактировав код, сюда можно вставить какую-то информацию напрямую без использования админки. Это бывает целесообразно, если у вас нет плагина, поддерживающего вставку php кода в виджет из редактора (exec php).

Если зеленой колонки с сайдбарами в вашей админпанели нет, значит установленный шаблон устаревшего типа и их не поддерживает. Как это исправить говорится в уроке про сайдбары WordPress.

Динамические виджеты WordPress

Одним из недостатков встроенной функции размещения виджетов является то, что они задаются сразу для всех или для группы страниц. И это не очень правильно в двух смыслах — во-первых, бывает такая ситуация, что в основном окне информации мало, а в сайдбаре такое же количество, как и в какой-нибудь большой статье. Тогда боковая колонка получается в несколько раз длиннее основного окна, что некрасиво смотрится. И вторая проблема — дублированный контент. То есть однажды просканировав текст в виджетах, поисковый робот внес их тексты в базу и когда на других страницах видит то же самое, считает это плагиатом и может понизить их вес. Выход из ситуации — установить плагин Dynamic Widgets, который превращает статические виджеты WordPress в динамические. То есть можно детально настроить, на какой странице, в какой категории, для какой группы пользователей (и так далее) каждый из них будет отображаться.

Детально работа плагина разбирается в видеоуроке, который я Вас призываю посмотреть.


Динамические виджеты без плагина

Частично восполнить функции плагина можно без его использования, а именно отключить их на определенных страницах. один из вариантов — создать отдельный шаблон страницы без сайдбара и при публикации статьи выбрать именно его. Другой вариант — сделать все на фуекциональном уровне, использовав в functions.php такой код:

function disable_sidebar_widgets( $sidebars_widgets ) {
    if (is_single(array(1,2,3,4)))
        $sidebars_widgets = array( false );
            return $sidebars_widgets;
}
add_filter( 'sidebars_widgets', 'disable_sidebar_widgets' );

Здесь значения 1,2, 3,4 — это ID тех записей, в которых не будут показаны виджеты.

Так же в WordPress есть возможность вставить определенный виджет в любом месте шаблона, не обязательно в предназначенном для них сайдбаре. Делается это при помощи вставки в нужное место шаблона кода:

<?php the_widget('Название_виджета', $instance, $args); ?>

«Названий виджетов» есть несколько, они уже предустановлены в системе. Вот список:

WP_Widget_Archives — архив
WP_Widget_Calendar — календарь
WP_Widget_Categories — категории
WP_Widget_Links — ссылки
WP_Widget_Meta — административные ссылки
WP_Widget_Pages — страницы
WP_Widget_Recent_Comments — последние комментарии
WP_Widget_Recent_Posts — последние посты
WP_Widget_RSS — RSS
WP_Widget_Search — форма поиска
WP_Widget_Tag_Cloud — облако тегов
WP_Widget_Text — текстовый виджет (текст, HTML и PHP)

То есть, если вы хотите вставить в определенный шаблон страницы виджет с последними комменариями, то прописываем:

<!?php the_widget('WP_Widget_Recent_Comments', $instance, $args); ?>

Если же у вас установлен плагин Exec-Php, позволяющий вставлять код php прямо из редактора на любую страницу, т оиспользование этого способа вставки виджетов WordPress становится еще более гибким.

Поделись этой статьей с друзьями!

Это будет интересно прочитать:

  • О виджетах знает наверное каждый вебмастер, а о профилированных плагинах для них — не каждый. В видео все подробно обозначено: что и как. Пока пользуюсь без плагина, но кто знает.

  • Помогите пожалуйста! На WordPress 3.4.2. перестал работать встроенный виджет «текст», хотя до этого все работало нормально. Обновлений никаких не производил. После перетаскивания в сайдбар он открывается и сразу же самопроизвольно закрывается наглухо. Отключение плагинов никакого результата не дало. *UNKNOWN*

    • Бывает такая ерунда и связана она как правило именно с каким-то плагином. Уверены что абсолютно все отключили?

  • Да, отключал все плагины и сейчас даже повторил эту процедуру, но никакой реакции. Кстати, не работает не только «текст», а и остальные виджеты тоже.

Добавить комментарий