10 самых полезных хаков и плагинов для управления рубриками в WordPress

13 октября 2014 1 009

Рубрики в WordPress — одна из встроенных таксономий платформы, обеспечивающая весьма удобный способ сортировки и восприятия контента. Тем не менее, вы можете заметно расширить функционал рубрик вашего сайта, выйдя за пределы документированных возможностей WordPress. Благодаря чему, вы сделаете свой сайт более удобным в использовании и простым в восприятии.

CodeCanyon: Лучшие плагины для WordPress
CodeCanyon: Лучшие плагины для WordPress

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

1. RSS-лента рубрик

Знаете ли вы, что каждая рубрика в WordPress имеет собственный RSS-канал? Просто добавьте /feed/ в конце ссылки на вашу рубрику вроде этого: http://danilin.biz/category/themes/feed/.
Как видите, шаблон ссылки выглядит так: http://адрессайта/category/рубрика/feed/.

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

Если же ваша тема имеет файл category.php, то просто добавьте следующий код там, где вы хотите вывести ссылку на подписку. Я рекомендую добавить ее прямо перед главным циклом.

$category = get_category( get_query_var('cat') );
if ( ! empty( $category ) )
echo '<div class="category-feed"><p><a href="' . get_category_feed_link( $category->cat_ID ) . '" title="Подписаться на RSS-ленту рубрики" rel="nofollow">Подписаться на RSS</a></p></div>';

Если ваша тема не имеет файла category.php, но имеется archive.php, тогда создайте новый файл, назовите его category.php и вставьте в него весь код из archive.php. После чего на странице архива рубрики вы увидите ссылку «Подписаться на RSS». Безусловно, вы можете изменить текст ссылки или сделать ее кнопкой, вписав в дизайн вашего сайта. Тут все ограничивается лишь вашей фантазией.

2. Список рубрик со ссылками на их RSS-ленты

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

function wpb_categories_with_feed() { 
$string .= '<ul>';
$string .= wp_list_categories('orderby=name&feed=RSS'); 
$string .= '</ul>'; 
return $string; 
}
add_shortcode('categories-feed', 'wpb_categories_with_feed'); 
add_filter('widget_text', 'do_shortcode');

Теперь чтобы вывести список рубрик со ссылками на их RSS-ленты достаточно вставить в текстовый виджет шорткод [categories-feed]. Следует отметить, что не всегда разумно и рационально включать специфический функционал сайта в его тему. Бывают ситуации когда правильнее вынести его в специально созданный плагин. И в данном случае лучше поступить именно так. Тогда при смене темы весь функционал сайта сохранится, все шорткоды будут работать, и вам не придется искать в коде старого шаблона добавленные функции и переносить их в новую тему. Всегда думайте о будущем, не усложняйте себе жизнь.

3. Добавляем рубрике иконку

Не секрет, изображения делают Интернет более красочным и интересным. К сожалению, в WordPress по-умолчанию нельзя назначить рубрикам какие-нибудь изображения, иконки. Но это легко решается с помощью плагина Taxonomy Images. После его установки и активации вам необходимо перейти в Настройки → Taxonomy Images и проставить галочки для таксономий в которых будут использоваться изображения.

wordpress-categories-1

Чтобы связать изображения с рубриками просто перейдите в Записи → Рубрики и кликните на значок с миниатюрой, чтобы загрузить изображение рубрики.

wordpress-categories-2

4. Включение рубрик для страниц

По-умолчанию в WordPress рубрики доступны лишь для записей. Тем не менее, вы можете включить использование рубрик с любыми типами записей, включая страницы. Просто установите и активируйте плагин Post Tags and Categories for Pages. Плагин работает, как говорится, из коробки и не имеет никаких настроек. Удостовериться в его работоспособности вы можете перейдя к редактированию страниц.

wordpress-categories-3

5. Включаем прилепленные записи для архивов рубрик

Известно, что в WordPress существуют т.н. Sticky Posts (прилепленные записи), которые независимо от даты публикации будут всегда отображаться на домашней странице. Чтобы иметь возможность прилеплять записи и на страницах архивов рубрик, необходимо установить и активировать плагин Category Sticky Posts. После активации плагина у вас в редакторе появится новый метабокс.

wordpress-categories-4

6. Создаем шаблон для архивов рубрик в WordPress

WordPress имеет очень мощный и продвинутый движок шаблонов. Чтобы отобразить определенные страницы, он по-умолчанию ищет шаблоны с конкретными именами в вашей теме. К примеру, шаблон category.php в теме используется для отображения всех страниц рубрик. Кроме этого, вы можете легко создавать шаблоны для определенных категорий, просто назвав шаблон именем рубрики. Например, чтобы создать шаблон для рубрики Music, назовите файл шаблона category-music.php и т.д.

Используйте файл category.php вашей темы в качестве исходника для шаблонов других категорий, а затем просто вносите в него необходимые вам изменения. WordPress — прекрасная и удобная CMS, в которой  абсолютно все создано лишь для нашего удобства.

7. Исключаем рубрики из RSS-ленты WordPress

В WordPress по-умолчанию все ваши посты транслируются в RSS-ленту сайта. Для того чтобы исключить из RSS-потока некоторые рубрики, необходимо установить и активировать плагин Ultimate Category Excluder. После его активации, просто перейдите в Настройки → Category Exclusion и выберите рубрики, которые следует скрыть из вашей RSS-ленты.

8. Показываем новые записи из отдельных рубрик

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

$query = new WP_Query( 'category_name=news' );
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

Замените значение category_name на имя рубрики, записи которой вы собираетесь вывести.

9. Связываем авторов с отдельными рубриками

Если на вашем сайте публикуются несколько авторов, вы можете ограничить им размещение своих статей лишь определенной рубрикой. Для этого установите и активируйте плагин Restrict Author Posting. После активации, перейдите в раздел пользователям и отредактируйте их профили, указав каждому из них необходимую рубрику.

wordpress-categories-6

10. Показываем анонсы на страницах категорий

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

<?php
function my_excerpts($content = false) {
	if(is_category()) :
		global $post;
		$content = $post->post_excerpt;
		if($content) :
			$content = apply_filters('the_excerpt', $content);
		else :
			$content = $post->post_content;
			$excerpt_length = 55;
			$words = explode(' ', $content, $excerpt_length + 1);
				if(count($words) > $excerpt_length) :
					array_pop($words);
					array_push($words, '...');
					$content = implode(' ', $words);
				endif;
			$content = '<p>' . $content . '</p>';
			endif;
		endif;
	return $content;
}
add_filter('the_content', 'my_excerpts');
?>

Этого же результата вы можете достигнуть, отредактировав файл category.php активной темы. В нем необходимо заменить все the_content на the_excerpt. Тем самым, вместо контента будет выводится анонс записи.

Автор: Иван Данилин

Практикующий веб-разработчик, специализируюсь на платформе WordPress.

Комментарии

Разгоните свой WordPress

Хостинг-провайдер номер один в России — REG.RU

Подробнее