пятница, 14 октября 2011 г.

Вывод похожих записей в Word Press без плагинов

Одним из способов грамотной перелинковки постов блога является показ похожих записей (related posts), то есть при просмотре поста из определенной категории в конце выводятся ссылки похожих (связанных) записей. 
Как правило записи "связываются" по тегам. То есть похожие записи отмечены одинаковым тегом. Подобную операцию позволяют выполнить масса плагинов для Word Press.
Но очень полезно использовать функции (если это конечно возможно) вместо установки дополнительных плагинов, поскольку чрезмерное количество плагинов (по различным данным среднее их число не должно превышать 30-ти) существенно замедляет загрузку сайта и соответственно портит впечатление о нем в целом.
Сегодня зададимся вопросом, как вывести ссылки на похожие записи
(related posts) без помощи сторонних плагинов? 
Сделать это, как оказалось очень и очень просто...

Скачиваем файл single.php нашей темы Word Press с сервера себе на локальный диск.
Напомню, что файл single.php отвечает за вывод единичной записи (поста). 
После вывода записи мы как раз и установим отображение похожих постов.
Итак, открываем файл в редакторе (лучше всего в Adobe Dreamveawer или Notepad++, почему - написано здесь) и дописываем в то место, где нам необходим вывод блока похожих записей следующий фрагмент кода:

<?php
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;

$args=array(
'tag__in' => $tag_ids,
'post__not_in' => array($post->ID),
'showposts'=>5, // Number of related posts that will be shown.
'caller_get_posts'=>1
);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo '<h3>Похожие записи</h3><ul>';
while ($my_query->have_posts()) {
$my_query->the_post();
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark"
title="Permanent Link to <?php the_title_attribute(); ?>">
<?php the_title(); ?></a></li>
<?php
}
echo '</ul>';
}
}
?>
 
 
 
'showposts'=>5, - это число устанавливает количество выводимых записей.

Комментариев нет:

Отправить комментарий