Если вы читали некоторые статьи здесь на WordPresso.org ранее, то вы знаете, что WordPress – это гораздо больше, чем блоговая платформа. Он также может быть использован в качестве CMS. И виджеты WordPress – это мощный инструмент в вашем арсенале разработки на WordPress.

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

Совет 1. Несколько зон для виджетов

Тема с виджетами стала желаемой и для пользователей тем, и для их разработчиков. Но сейчас одной области для виджетов недостаточно. Первым шагом в использовании виджетов на вашем WordPress сайте должна быть «виджетизация» темы, и это не так уж сложно, если вы вставите нужный код в нужное место.

Регистрация областей виджетов

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

<?php
	register_sidebar( array(
		'name' => 'left-sidebar',
		'id' => 'left-sidebar',
		'before_widget' => '<div id="%1$s">',
		'after_widget' => '</div>',
		'before_title' => '<h3>',
		'after_title' => '</h3>'
	) );
	register_sidebar( array(
		'name' => 'right-sidebar',
		'id' => 'right-sidebar',
		'before_widget' => '<div id="%1$s">',
		'after_widget' => '</div>',
		'before_title' => '<h3>',
		'after_title' => '</h3>'
	) );
?>

Активация области виджетов

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

<?php if (!dynamic_sidebar("left-sidebar") ) : ?>
Default left sidebar stuff here…
<?php endif; ?>
<?php if (!dynamic_sidebar("right-sidebar") ) : ?>
Default right sidebar stuff here…
<?php endif; ?>

Код между тегами PHP будет отображаться, ели в соответствующей области для виджетов не будет использоваться никаких виджетов. Например, если никаких виджетов не будет использовано в виджете «left-sidebar», то вместо него будет показано «Default left sidebar stuff here…»

Совет 2. Widget Logic

Иногда вам не хочется, чтобы на каждой странице вашего блога те же виджеты выглядели одинаково. И тут вам может пригодиться плагин Widget Logic.

После установки плагина в блоке опций каждого используемого вами виджета появится дополнительное поле ввода «Widget Logic». В это поле вы можете ввести набор тегов условий WordPress, чтобы управлять, где именно будет отображаться виджет.

В скриншоте выше, виджет Calendar настроен так, что будет отображаться только на странице под названием "Evil". Вы можете использовать намного больше тегов условий.

Примеры тегов условий:

  • Показывать только на главной странице: is_home()
  • Показывать только на страницах отдельных постов: is_single()
  • Показывать только на страницах: is_page()
  • Показывать на страницах архива (категория, тег, и т.д.) is_archive()
  • Показывать на страницах результатов поиска: is_search()
  • Показывать на всех страницах кроме главной: !is_home()
  • Показывать на странице "Advertise" или "Contact" : is_page('advertise') || is_page('contact')

Просто введите нечто подобное в ваше поле Widget Logic, в зависимости от того, где вы хотите, чтобы ваши виджеты отображались.

Совет 3. Query Posts

Для тех, кто не знает, тег шаблона query_posts – это мощная функция WordPress, которую вы можете использовать, чтобы управлять тем, как разные посты и страницы будут появляться в цикле.

Тем не менее, если вам неохота возиться с PHP в том объеме, который требуется, но вы все равно хотите пользоваться преимуществами тега query_posts, вы можете использовать виджет Query Posts, чтобы отображать контент WordPress практически как вам заблагорассудится.

После установки и активации плагина, у вас появится новый доступный виджет «Query Posts» в меню виджетов WordPress.

Что он умеет делать:

  • Показывать посты по категориям, тегам, автору, дате/времени или по специфическим ключам/значениям.
  • Показывать столько постов,сколько вы захотите.
  • Сортировать посты по дате публикации, заголовку или ID в порядке возрастания или убывания.
  • Показывать посты полностью, как отрывки или списком.
  • Показывать страницы WordPress.

Совет 4. Шаблоны 404

Много тем для WordPress, включая тему WordPress по умолчанию, не предоставляют ничего полезного в своих шаблонах страницы 404. Например, если вы попадете на страницу 404 сайта на WordPress, который использует стандартную тему, то вам сообщат, что «Ошибка 404 – страница не найдена» и все.

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

Код

Первый шаг – регистрация области виджета в WordPress. Чтобы это сделать, откройте файл functions.php вашей темы и вставьте в него следующий код:

<?php
	register_sidebar( array(
		'name' => '404',
		'id' => '404',
		'before_widget' => '<div id="%1$s">',
		'after_widget' => '</div>',
		'before_title' => '<h3>',
		'after_title' => '</h3>'
	) );
?>

Теперь, когда виджет зарегистрирован, вам нужно будет отредактировать файл 404.php вашей темы, добавив в него следующий код:

<?php dynamic_sidebar( '404' ); ?>

Вот и все. Теперь вы можете добавить любые виджеты, которые вы захотите, в ваш виджет «404» и они будут отображаться каждый раз, когда посетитель попадает на страницу ошибки 404.

Загрузите ее полезными вещами типа строки поиска, последних постов, списка категорий или, может, несколькими списками Query Post.

Подробнее о том, что нужно учесть и какие элементы лучше добавить на страницу ошибки 404, написано в опубликованной нами ранее статье "Как создать простую страницу ошибки 404 для WordPress".

Совет 5. Вставка рекламы между постами

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

Код

Как и при добавлении виджетов в шаблон 404 страницы, первым шагом является регистрация области виджета для "index-insert". Откройте ваш файл functions.php и вставьте туда этот код:

<?php
	register_sidebar( array(
		'name' => 'index-insert',
		'id' => 'index-insert',
		'before_widget' => '<div id="%1$s">',
		'after_widget' => '</div>',
		'before_title' => '<h3>',
		'after_title' => '</h3>'
	) );
?>

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

<?php if ($count==2) { ?>
<?php dynamic_sidebar('index-insert') ?>
<?php } ?>
<?php $count = $count + 1; ?>
<?php endwhile; ?>

Написанный выше код вставит зону виджета "index-insert" сразу после второго поста. Вы можете изменить чисто в строке $count==2 на другое, в зависимости от того, после какого поста вы хотите показывать область своего виджета.

Если вы хотите показывать рекламу между вашими архивными списками, на страницах категорий или тегов, вам нужно будет вставить указанный выше код в другие файлы: archive.php, category.php и tag.php Вы можете даже управлять тем, какую рекламу показывать на какой странице, используя теги условий, такие как is_archive(), is_category() и is_tag(), в плагине Widget Logic.

Источник: Smashing Magazine

Вам понравился материал?

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

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

5 комментариев

сначала новые
по рейтингу сначала новые по хронологии

Добрый день. Меня заинтересовал совет 5.
Как я понял для добавления виджета между постами редактируем functions.php....
В админке виджет как будет отображаться? С каким названием index-insert ?
http://goldserfer.ru/

Все правильно, часть кода нужно вставить в functions.php для регистрации самой области виджета, а потом часть кода в файл index.php для вывода самого виджета в определенной позиции. В админке виджет зарегистрируется под именем index-insert.

Благодарю за статью. Может быть попробую у себя http://slavyoga.ru

Нормальненько так излагаешь!) пасиба.

ЛЮди кто подскажет,может я и не по теме?
Вообщем суть вопроса нужно сделать так что бы когда просматриваешь все посты с главной были видны только миниатюры а когда заходишь в пост ,там уже большая картинка.Как так сделать?
Так как я еще зеленый в этом деле и хочу научиться и экспериментирую
Уважаемые адvины может вы поможете? andreyrich90@gmail.com

И еще сайт у вас очень четкий ,толковый.Молодцы ребята!