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

Похожие записи – именно то, что заставляет посетителей надолго задерживаться в блоге. Так же похожие записи создают неплохую перелинковку – поисковый робот, зайдя в запись, увидит несколько внутренних ссылок, по которым и проследует, индексирую их. Грамотно подобранные похожие записи влияют на популярность блога, поэтому каждый блоггер старается снабдить свой блог этой фишкой. Есть несколько принципов формирования похожих записей: по категориям, по тегам, по содержимому публикации, по названию. Практика показывает, что наилучший результат дает вывод похожих записей по тегам и по категориям.

Некоторые активно используют теги, некоторые же – категории. И не обязательно для этого применять плагины – можно это сделать с помощью вставки кода. Я уже писал, как вывести похожие записи по тегам:

Если вы не хотите пользоваться плагинами для вывода похожих записей из той же категории, к какой принадлежит просматриваемый пост, то можете воспользоваться кодом, который приведу ниже:

Похожие записи из категории

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

19 Комментарии

  1. у меня такая проблема.список выводит,но не 10 штук а все которые есть в рубрике.Ставил значение showposts меньше но никакой реакции.

    • А куда вы вставляете код? Желательно вставлять его в цикл, то есть вовнутрь поста (например, сразу после вывода содержимого поста).

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

  3. Зарегестрировалась. Вы тут пишете про цикл, может, в этом моя ошибка? Что вы подразумеваете под циклом? Вот собственно мой сайт _http://ladystory.ru/_ У меня задача – вывести похожие записи уже под рекламой, чтобы не снизить себе доход. Вывожу до блока начала комментариев, встает отлично, но комментарии начинают выводиться к похожим записям.

    • Код нужно вставлять внутри цикла

      <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
      ....
      <?php endif;?>

      Комментарии находятся за его пределами.

  4. Здравствуйте, спасибо за ответ. Но я не понимаю, почему то у меня вывод комментариев идет внутри этого цикла, отсюда, видно, и пробема. Если это возможно, посмотрите что не так …

    <?php get_header(); ?>
    <?php get_sidebar(); ?><noindex><script type="text/javascript"> 
    var RNum = Math.floor(Math.random()*10000);
    var Referer = escape(document.referrer);
    function WriteTeaser_XXX (Id) { TeaserBlock  = document.getElementById("Teaser_Block_"+Id); CodeScript  = document.createElement("script"); CodeScript.type = "text/javascript"; CodeScript.src = "http://n.ladycash.ru/adv_out.php?Id="+Id+"&Referer="+Referer+"&RNum="+RNum; TeaserBlock.innerHTML = ""; TeaserBlock.appendChild(CodeScript); }
    </script>
    <div id="Teaser_Block_XXX">загрузка...</div><iframe src="http://n.ladycash.ru/ping.php?RNum=" style="visibility:hidden; display:none; width:1px; height:1px; position:absolute" id="Teaser_Iframe_XXX" onload="WriteTeaser_XXX(XXX);"></iframe></noindex><div id="content"><a name="content"></a>
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    <div class="post" id="post-<?php the_ID(); ?>">
    <div class="title">
    <div class="date1"><?php the_time('M'); ?><br /><span class="day"><?php the_time('d'); ?></span></div>
    <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
    <div class="date"><span>Опубликовано в рубрику: <?php the_category(', '); ?></span></div>
    </div></br>
    <div class="cover">
    <div class="entry">
    <?php the_content(''); ?>
    </div>
    <div class="postinfo">
    <div class="com"><?php comments_popup_link('Ваше мнение >>', '1 комментарий', '% комментариев'); ?></div>
    </div>
    <noindex><div id="Teaser_Block_16838">загрузка...</div>
    <script type="text/javascript">var RNum = Math.floor(Math.random()*10000); document.write('<scr'+'ipt language="javascript" type="text/javascript" src="http://n.ladycash.ru/adv_out.php?Id=16838&RNum='+RNum+'&Referer='+escape(document.referrer)+'"><'+'/scr'+'ipt>');</script></noindex>
    </div>
    <!-- pered </body> -->
    <script type="text/javascript" src="http://mg.dt00.net/js/l/a/ladystory.ru.5792.js" charset="utf-8"></script>
    <!-- Яндекс.Директ -->
    <script type="text/javascript">
    //<![CDATA[
    yandex_partner_id = XXX;
    yandex_site_bg_color = 'FFFFFF';
    yandex_site_charset = 'utf-8';
    yandex_ad_format = 'direct';
    yandex_font_size = 1;
    yandex_font_family = 'verdana';
    yandex_direct_type = 'vertical';
    yandex_direct_limit = 4;
    yandex_direct_title_color = 'CC0000';
    yandex_direct_url_color = '000000';
    yandex_direct_all_color = '000000';
    yandex_direct_text_color = '000000';
    yandex_direct_hover_color = '000000';
    yandex_direct_favicon = false;
    document.write('<sc'+'ript type="text/javascript" src="http://an.yandex.ru/system/context.js"></sc'+'ript>');
    //]]>
    </script>
    <noindex><form target="_top" action="http://subscribe.ru/member/quick" method="get">
    <input type="hidden" name="action" value="quick">
    <input type="hidden" name="src" value="list_home.modebeauty.ladystory">
    <table border="0" cellspacing="0" cellpadding="2" width="652">
    <tr><td bgcolor="#ffffff" align="center"><b><span lang="ru">
    <font face="Verdana" size="-1" color="#CC0066">Хотите получать все 
    самые полезные статьи, опубликованные в журнале, на свой почтовый 
    ящик?</font></span></b></td></tr>
    <tr><td bgcolor="#ffffff" align="center" valign="middle">
    <font face="Verdana">
    <INPUT TYPE=hidden NAME=grp VALUE="home.modebeauty.ladystory">
    </font><strong style="font-weight: 400"><font face="Verdana" size="2">
    <span lang="ru">Просто оформите подписку на нашу рассылку - </span></font></strong><strong>
    <a rel="nofollow" href="http://subscribe.ru/catalog/home.modebeauty.ladystory" target="_top" style="color: #000000;font-size: 10pt; font-family: Verdana">Женские истории от Lady Story</a></strong><font face="Verdana" size="2">
    </font>
    </td></tr>
    <tr><td bgcolor="#ffffff" align="center" valign="middle">
    <input type="text" name="email" size="20" maxlength="100" value="ваш e-mail" style="font-size: 9pt; font-family: Trebuchet MS" onFocus="this.value = '';return false;">
    <input  type="submit" value="Подписаться" style="font-size: 9pt; font-family: Trebuchet MS">
    </td></tr>
    <tr><td align="center"><A rel="nofollow" HREF="mailto:home.modebeauty.ladystory-sub@subscribe.ru?subj=subscribe" style="color: #000000;font-family:Verdana, sans-serif;font-size:10px;">Подписаться письмом</A></td></tr>
    </table>
    </form></noindex>
    </div>
    <?php comments_template(); ?>
    <?php endwhile; else: ?>
    <h1 class="title">Not Found</h1>
    <p>I'm Sorry,  YOU are looking for something that ISN'T HERE. </p>
    <?php endif; ?>
    </div>
    <?php get_footer(); ?>
    

    Получается, что если я ставлю в любое место до у меня все корежится. Либо полностью обрезаются комментарии, либо выводятся “похожие” комментарии.

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

        • Когда я ставлю до

          <div class="postinfo">

          у меня полностью обрезаются комментарии под записью.
          Если я ставлю сразу перед

          <?php comments_template(); ?>
          

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

          • Попробуйте вставить код сразу перед

            <?php comments_template(); ?>

            a после вставленного кода добавить строчку

            <?php wp_reset_query(); ?>

            Должно быть примерно так:

            ...
            код
            <?php wp_reset_query(); ?>
            <?php comments_template(); ?>
            ...
          • Еще одна мысль – а если comments_template вынести за пределы цикла и вставить сразу после строчки

            <?php endif; ?>

            ?

  5. И, если можно, удалите потом мой код. Или потрите дерект, не подумав добавила с id. Благодарю!

  6. Подскажите, как заставить заработать этот код в собственных типах записей?
    Говорят, что нужно дописать строку

    'post_type' => 'post_type_name'

    но все-равно не отображаются :(

    А вообще спасибо, хорошая реализация вывод похожих записей.

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*