Похожие записи с миниатюрами и анонсом статьи без плагина (перелинковка по рубрикам)

похожие записи с миниатюрами без плагинаПривет, друзья-товарищи. Вчера разместил на этом блоге и на других своих сайтах блок «похожие записи из рубрики», который можете наблюдать внизу после статьи. Видите как круто выглядит? С миниатюрами, да еще и с анонсом из статьи. Просто великолепно!. Так вот, этот блок с похожими записями выводится без плагина, с помощью кода. Сейчас я вам этот код дам, но объяснить как он работает не смогу, потому что и сам не знаю. Знаю только то что он выводит предыдущие записи из рубрики. Это своего рода круговая перелинковка по рубрикам — ровное распределение веса и все дела, плюс поведенческие факторы: просмотры страниц, время нахождения на сайте, в общем и целом, ваш сайт по идеи должен ранжироваться выше и получать трафика больше. В идеале.

Откровенно говоря, я бы не стал писать этот пост, в кодах я ни бум-бум, да к тому же сейчас так много-много-много дел с другими сайтами, плотная работа с несколькими клиентами, да и домашних забот прибавилось, лето ведь, а в частном доме за лето нужно успеть многое, но как бы то ни было, я выделил время для того, чтобы вам помочь! Тем более, за вчерашний вечер и сегодняшнее раннее утро трое вебмастеров-манимейкеров поинтересовались как я сделал этот шикарный блок — я не мог оставить ваши вопросы без ответа. Но чтобы не отвечать по много раз, решил просто взять и отдать вам код. Я бы и ссылку на источник дал, но ссылки, к моей печали нету. Вчера разгребал завалы в своем Еверноуте, и наткнулся на эти коды. Откуда я их нашел, хоть пытай, не помню.

Итак…

[alert-announce]Внимание! Перед тем как будете пытаться повторить за мной, сделайте резервные копии файлов! Предупреждаю, я не в ответе за то, что у вас получится. А то сами сломаете структуру кода, и начнутся гневные и матерные комментарии в мой адрес. Не надо! [/alert-announce]

Вот код для вывода похожих записей из рубрики, который нужно разместить после статьи, т.е. в файле single.php

[php]<?php
function show_previous_posts_from_category ($the_post_id, $the_category_id = 0, $post_num) {
function new_excerpt_length($length) {
return 25; }
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 class="related1">

<ul class="recent">
<h4>Предыдущие статьи по теме:</h4>
<?php
foreach ($result as $post) {

setup_postdata($post);
?>
<li><a href="<?php the_permalink() ?>" class="recent-link" rel="bookmark"><?php the_post_thumbnail(array(90,90)); ?><?php the_title(); ?></a>
<? the_excerpt(); ?></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() ?>" class="recent-link" rel="bookmark"><?php the_post_thumbnail(array(90,90)); ?><?php the_title(); ?></a>
<? the_excerpt(); ?></li>

</li>
<?php
}
}
?>
</ul>
</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();
?[/php]

— Размер миниатюр задает вот эта функция:

[php]<!—?php the_post_thumbnail(array(90,90)); ?—>[/php]

где цифры, соответственно размер, который, можно поменять.

Внимание! У вас к каждой статье должна быть задана миниатюра.

— За количество выводимых записей отвечает, наверно, вот этот код:

[php]show_previous_posts_from_category($post->ID, $the_cat_id, 5); [/php]

Где цифра 5 и есть кол-во.

Теперь нужно задать стили этому блоку.

Код, который нужно вставить в файл style.css (стили оформления)

[php]
.related1 img{margin: 0 5px 0 0; float:left; padding:3px; border:1px solid #ccc;}
.related1 ul li{margin:0; list-style-type: none; background-image:none; padding:15px 0 0; border-bottom:1px solid;}
a.recent-link {font-weight:bold; font-size:15px; line-height:14px; color:#009EDC;}
.related1 h4 {color: #FF3333; padding: 5px; margin-bottom:-1px;}
[/php]

Если вы в css полные чайники, то вот вам статья

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

У меня именно так все и сделано.

Кому нравиться плагины WordPress, то статья по теме: 10 плагинов для внутренней перелинковки

Я понимаю, что многие не умеют вставлять коды, обращайтесь, наши профессионалы вам помогут (почта: aimblogru@gmail.com)

Если вам нужен качественный хостинг в Украине, то компания «Провеб» идеальный для вас вариант. Имейте это в виду.

Удачи!

✌️ Хочешь продолжить разговор после статьи?

В Telegram я делюсь всем, чего нет на блоге: быстрые мысли, мемы, хаос и ностальгия.

Подписаться на Telegram
Комментарии: 12
  1. Анатолий

    Отличная статья. Перелинковка сейчас важна как никогда, особенно такая тематическая по категориям.

    1. Voroni (автор)

      Ну да. Хотя перелинковка важна была всегда)

  2. Денис

    Этот код активирует лишь категории, а можно чтобы и метки также были учтены?

    1. Voroni (автор)

      Денис, я не знаю. Я ведь написал, что не понимаю как работают код.

    2. Виталий

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

  3. Анжелика

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

    1. Voroni (автор)

      Нет, просто в настройках отключи. После кода можешь пробовать вставлять

  4. Сергей

    Здорово! Интересно, все темы принимают этот код? А то моя чудит иной раз. Большое спасибо, буду пробовать!

  5. Евгения

    Валера, а в style.css в какое место код вставляется?

    1. Voroni (автор)

      Евгения, можно вообще в любое. Вставьте в самом конце.

  6. Любовь

    А у меня почему то и так выводятся по рубрикам. Похожие записи без плагина сразу было прописано в теме у меня. Но правда без анонса. Нужно будет поэкспериментировать. Так намного интереснее и заманчивее смотрится.

  7. Алескандр

    Блин, у меня не работает код, а жаль

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности (подробнее).