Похожие записи на WordPress сайте

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

Похожие записи с помощью плагина

Чтобы вывести список похожих записей на WordPress сайте вы можете использовать плагин Contextual Related Posts. Этот плагин хорош тем, что может определить похожие записи по ее содержимому – контенту и заголовку. Плагин имеет множество настроек, в том числе вы можете настроить вид похожих записей.

Похожие записи на Wordpress без плагина

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

Показываем похожие записи по категориям

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

<div class="related">
<h3>Дополнительные записи</h3>
<ul>
<?php
$categories = get_the_category($post->ID);
if ($categories) {
    $category_ids = array();
    foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;

    $args=array(
        'category__in' => $category_ids,
        'post__not_in' => array($post->ID),
        'showposts'=>3, // Количество выводимых записей
        'caller_get_posts'=>1
    );

$my_query = new wp_query($args);
    if( $my_query->have_posts() ) {
        echo '';
        while ($my_query->have_posts()) {
            $my_query->the_post();
        ?>

            <li class="post_mini">
			<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
			<?php if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())  ) : ?>
	<a class="post_thumbnail" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" alt=""><?php the_post_thumbnail(array( 234,124)); ?></a>
<?php endif; ?>

</li>

        <?php
        }
        echo '';
    }
    wp_reset_query();
}
?>
</ul>
</div>

Желательно вставить этот код после закрывающегося тега </div><!-- #post-## -->, тем самым сразу после контента вашей записи вы получите три дополнительных ссылки на похожие записи из той же категории, в которой находится эта запись. Я оформил похожие записи списком и заключил их в див с классом related. Мне кажется это удобным. Каждая дополнительная запись представляет из себя пункт <li>, внутри которого вы увидите заголовок похожей записи, и миниатюру. Если миниатюра у записи отсутствует, то в ее качестве будет использована первая картинка встречающаяся в посте. Что бы узнать, как это делается, читайте мой пост «Первая картинка записи в анонсе».

Если вам нужен простой список похожих записей, используйте этот код ниже:

<div class="related">
<h3>Дополнительные записи</h3>
<ul>
<?php
$categories = get_the_category($post->ID);
if ($categories) {
    $category_ids = array();
    foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;

    $args=array(
        'category__in' => $category_ids,
        'post__not_in' => array($post->ID),
        'showposts'=>3, // Количество выводимых записей
        'caller_get_posts'=>1
    );

$my_query = new wp_query($args);
    if( $my_query->have_posts() ) {
        echo '';
        while ($my_query->have_posts()) {
            $my_query->the_post();
        ?>

            <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>

        <?php
        }
        echo '';
    }
    wp_reset_query();
}
?>
</ul>
</div>

Показываем похожие записи по меткам

Принцип вывода похожих записей по меткам точно такой же, как и по категориям. А код будет следующим:

<div class="related">
<h3>Дополнительные записи</h3>
<ul>
<?php

$tags = wp_get_post_tags($post->ID);
if ($tags) {
$first_tag = $tags[0]->term_id;
$args=array(
'tag__in' => array($first_tag),
'post__not_in' => array($post->ID),
'showposts'=>3,
'caller_get_posts'=>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li class="post_mini">
			<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
			<?php if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())  ) : ?>
	<a class="post_thumbnail" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" alt=""><?php the_post_thumbnail(array( 234,124)); ?></a>
<?php endif; ?>

</li>
<?php
endwhile;
}
wp_reset_query();
}
?>

</ul>
</div>

Снова, для вывода простого списка похожих записей без миниатюр используйте следующий код:

<div class="related">
<h3>Дополнительные записи</h3>
<ul>
<?php

$tags = wp_get_post_tags($post->ID);
if ($tags) {
$first_tag = $tags[0]->term_id;
$args=array(
'tag__in' => array($first_tag),
'post__not_in' => array($post->ID),
'showposts'=>3,
'caller_get_posts'=>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php
endwhile;
}
wp_reset_query();
}
?>

</ul>
</div>

Ну вот, теперь вы можете вывести похожие записи на WordPress сайте по меткам и категориям без использования плагинов. А если с этим кодом у вас возникнут сложности или проблемы, пишите мне об этом в комментариях, постараюсь помочь вам. Но код рабочий, проверен на нескольких сайтах! :)