Хук вордпресс: выводим похожие записи WordPress без плагина, сортируя по рубрикам или меткам.

Выводим похожие записи по рубрикам

Представленный ниже код необходимо установить в файл вывода одиночных постов (как правило — это single.php). После его установки, в конце каждой записи у Вас будут отображаться посты, относящиеся к одной и той же рубрике в виде маркированного списка. Количество выводимых постов можно заменить на удобное Вам (смотрите комментарии в коде).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?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'=>8,  // это отвечает за количество выводимых записей
 'orderby'=>'rand', // это за отображение в случайном порядке
 'ignore_sticky_posts'=>1); // отключаем закрепленные посты
 $my_query = new wp_query($args);
 if( $my_query->have_posts() ) {
 echo '<ul>';
 while ($my_query->have_posts()) {
 $my_query->the_post();
?>
<li><a href="<?php the_permalink() ?>"><?php the_post_thumbnail('thumbnail'); ?><br /><?php the_title(); ?></a></li>
<?php
}
echo '</ul>';
}
wp_reset_query();
}
?>

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

Представленный ниже код необходимо установить в файл вывода одиночных постов (как правило — это single.php). После его установки, в конце каждой записи у Вас будут отображаться посты, относящиеся к одной и той же метке в виде маркированного списка. Количество выводимых постов можно заменить на удобное Вам (смотрите комментарии в коде).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?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, // это отвечает за вывод по меткам   
'orderby'=>rand,       // это отвечает за рандомный вывод      
'caller_get_posts'=>1,    // исключаем повторение одинаковых записей        
'post__not_in' => array($post->ID), // это исключает текущую запись
'showposts'=>8         //   задаем количество выводимых записей          
);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo '<ul>';
while ($my_query->have_posts()) {
$my_query->the_post();
?>
<li><a href="<?php the_permalink() ?>"><?php the_post_thumbnail('thumbnail'); ?><br /><?php the_title(); ?></a></li>
<?php
}
echo '</ul>';
}
wp_reset_query();
}
?>
Возможно Вас заинтересует: