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

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

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

Итак…

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

Вот код для вывода похожих записей из рубрики, который нужно разместить после статьи, т.е. в файле single.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 the_post_thumbnail(array(90,90)); ?-->

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

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

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

show_previous_posts_from_category($post->ID, $the_cat_id, 5); 

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

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

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

.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;}

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

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

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

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

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

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

Удачи!

    ADD YOUR COMMENT