Как вывести материалы рубрики на странице статьи

12
S
На сайте с 20.06.2012
Offline
131
2145

Как сделать "похожие записи", то есть чтобы на странице статьи отображались только материалы из этой же категории?

ТР
На сайте с 24.09.2016
Offline
224
#1
sebadoh:
Как сделать "похожие записи", то есть чтобы на странице статьи отображались только материалы из этой же категории?

Если ВП, то можно плагинами.

Как копирайтеру хорошо зарабатывать (https://copywriting-tarasov.ru/?p=613) https://copywriting-tarasov.ru/ (https://copywriting-tarasov.ru/) Бесплатный аудит РК в Яндекс.Директе
S
На сайте с 20.06.2012
Offline
131
#2

Да, вп. Я находил только плагины выводящие по кол-ву просмотров

ТР
На сайте с 24.09.2016
Offline
224
#3
sebadoh:
Да, вп. Я находил только плагины выводящие по кол-ву просмотров

Я на некоторых сайтах юзаю WordPress Related Posts Thumbnails, там достаточное количество настроек.

Synergy-Web
На сайте с 09.08.2017
Offline
39
#4

Можно без плагина, просто кусок кода вставить шаблон записи (в single.php).

Если такой вариант подходит - могу выложить работающий код.

Generich
На сайте с 02.07.2015
Offline
125
#5
sebadoh:
Как сделать "похожие записи", то есть чтобы на странице статьи отображались только материалы из этой же категории?

Можете добавить следующий код в файл single.php в то место где Вы хотите вывести "Похожие записи":

<?php

function show_previous_posts_from_category ($the_post_id, $the_category_id = 0, $post_num) {

$num = 0;
global $wpdb;

$sql = "SELECT wposts.*
FROM $wpdb->posts wposts
LEFT JOIN $wpdb->term_relationships ON (wposts.ID = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
WHERE $wpdb->term_taxonomy.taxonomy = 'category'
AND $wpdb->term_taxonomy.term_id = '$the_category_id'
AND wposts.post_status = 'publish'
AND wposts.post_type = 'post'
AND wposts.ID < '$the_post_id'
ORDER BY wposts.ID DESC
LIMIT $post_num";

$result = $wpdb->get_results($sql, OBJECT);
global $post;
?>
<ul>
<?php
foreach ($result as $post) {
setup_postdata($post);
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php
$num++;
$save_ids[] = $post->ID;
}
if ( $num < $post_num || !$result ) {
$need_more = $post_num-$num;
$save_ids[] = $the_post_id;
$save_ids = join (',', $save_ids);
$more_posts = get_posts("numberposts=$need_more&category=$the_category_id&exclude=$save_ids");
foreach ($more_posts as $post){
setup_postdata($post);
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
<?php
}
}
?>
</ul>
<?php } ?>

<?php
$the_cat = get_the_category();
$the_cat_id = $the_cat[0]->cat_ID;
show_previous_posts_from_category($post->ID, $the_cat_id, 5);
wp_reset_query();
?>

В конце $the_cat_id, 5 - цифру ставьте такую, сколько нужно выводить записей.

S
На сайте с 20.06.2012
Offline
131
#6

Generich, спасибо, хватило того плагина

tommy-gung
На сайте с 22.11.2006
Offline
287
#7

Generich, на самом деле нет смысла лезть напрямую в бд, есть и внутренние функции для этого

Здесь не могла быть ваша реклама
Generich
На сайте с 02.07.2015
Offline
125
#8
tommy-gung:
Generich, на самом деле нет смысла лезть напрямую в бд, есть и внутренние функции для этого

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

il_cattivo
На сайте с 25.06.2016
Offline
63
#9

В большинстве новых шаблонов можно выбрать не только по рублике, но "по тегу", а иногда по "рублике и тегу" итп.

SeVlad
На сайте с 03.11.2008
Offline
1609
#10
Generich:
Можете добавить следующий код в файл single.php в то место где Вы хотите вывести "Похожие записи":

Вот только не нужно никогда так делать.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий