Как вывести похожие записи без плагина?

Регистрация доменов
Домен RU - 99 руб
Домен РФ - 99 руб
www.



Долгое время я не делал на этом сайте вывод похожих записей, и вот настал час. Вывести похожие записи в конце статьи очень полезно по двум причинам: 1. Так мы получаем дополнительную перелинковку, при этом тематическую. 2. Так мы увеличиваем глубину просмотра сайта, так как если прочтения человек прочитает хотя бы ещё одну статью, то для сайта это будет плюс.

Существует масса плагинов, которые выполняют все эти задачи, но любой плагин это вынужденное зло, так как часто они глючат и грузят систему. Идеально все сделать без плагина, на чистом php, и это вполне возможно.

Как вывести похожие записи без плагина?

Я перепробовал много кодов, и в конечном счете остановился на одном самом оптимальном. Это скрипт выводит тематические статьи, с картинкой,  легко настраивается.

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

<?php
function show_previous_posts_from_category ($the_post_id, $the_category_id = 0, $post_num) {
function new_excerpt_length($length) {
return 10; }
add_filter('excerpt_length', 'new_excerpt_length');

$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;
?>

<div>

<!--noindex--><h2>Другие статьи из категории: <?php the_category( ', ' ) ?></h2> <!--/noindex-->

<?php
foreach ($result as $post) {

setup_postdata($post);
?>
<p>
<?php the_post_thumbnail(array(150,150)); ?>

<h3><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h3></p>
<? the_excerpt(); ?>

<?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);
?>
<p>

<h3><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h3>

<div align="center"><?php the_post_thumbnail(array(250,250)); ?></div>

<? the_excerpt(); ?>

</p>
<?php
}
}
?>

</div>
<?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();
?>

Код громадный, но не я его придумал, подправил лишь немного под свои нужды, вы можете посмотреть его работу в конце статьи.

Может у вас есть лучшие варианты? Будет интересно узнать другие решения.


Понравилась ИГРА? Возьми КОД, поставь себе на сайт и улучши поведенческие факторы!


Один комментарий уже есть ;)
  1. Отключил у себя миниатюры в скрипте, в данной тематике #webmaster ВООБЩЕ не нужны, только страницу грузят.

Написать комментарий

Опубликовано © Блокнот вебмастера

СОВЕТ ВЕБМАСТЕРУ: Умение зарабатывать в интернете - это только пол дела, вторая половина - это умение ВЫГОДНО обналичивать электронные деньги. Вот список офшорных банковских карт, на которые можно выводить средства и потом снимать с них хрустящие купюры:

1. Epayments - можно открыть счет в долларах, евро и рублях. Формально банка нет, юридический адрес в Лондоне, но можно получить реквизиты банка в Латвии.

2. AdvCash - Офшорный банк находится в Белизе, можно открыть счет в долларах, евро, фунтах и рублях.

3. OkPay - Офшорная компания зарегистрирована на Британских Виргинских островах, можно открыть счет в долларах, евро и рублях.

4. Payeer - Штаб квартира этой платежной системы находится в Грузии, тут так же можно открыть счет в долларах, евро и рублях.

Во всех случаях можно заказать банковскую карту, которую пришлют вам по обычной почте. Активируете ее и идете снимать деньги банкомат! Тарифы смотрите на сайтах платежных систем.