Вывод ссылок на похожие записи в конце статьи у меня значительно повышает количество просмотров. Для вывода похожих записей в WordPress есть куча плагинов. Я пользовался Simple Tags, в силу его универсальности. Есть ещё популярный WP Related Posts, который кроме прочего может выводить тумбы к связанным записям.

Но в определенный момент я понял, что Simple Tages в момент выода связанных записей довольно сильно нагружает базу по показанию WP Tuner он сжирал в среднем 269 msec DB Time, в то время как всё остальное хозяйство не больше 10 каждый. Ставить ещё и WP Related Posts просто не хотелось. Решил сделать всё своими руками.

Вобщем так где у нас стоял вывод похожих записей WordPress ( стояла например функция st_related_posts() ) пишем свою функцию , например azz_related_tags( 10 ) , а определяем её уже в файле functions.php . Примерно она может выглядеть так. Подробное описание в коде:

[cc lang=”php”]
ID);
// Аргументы определяющие какие посты выводить
$args = array( ‘numberposts’ => $post_count, ‘offset’=> 1, ‘category’ => $cur_cat[0]->cat_ID, ‘orderby’ => ‘rand’ );
// Получаем посты
$myposts = get_posts( $args );
?>

Из рубрики cat_name ?>

20 января 2011 | Программирование | Метки:

13 Комментариев к “Выводим похожие записи в WordPress без плагина”

  1. Дмитрий 11 февраля, 2011

    Это получается такой способ создаст меньшую нагрузку чем плагин с подобными действиями?

  2. Azzrael 11 февраля, 2011

    в моем случае по сравнению с генерацией похожих записей от Simple Tags снижение нагрузки было значительным. По сравнению с wp-relatedposts – не сравнивал, но думаю что тоже.

  3. vitvlad 21 февраля, 2011

    А куда код влепить? В сингл-пост или в плагин?

  4. Azzrael 21 февраля, 2011

    сам код функции соотв. в файл functions.php вашей темы.
    а вызов функции, например azz_related_tags( 10 ) в то место где был вызов related_posts , обычно это single.php темы. К плагинам всё это вообще никакого отношения не имеет.

  5. Владимир 1 апреля, 2011

    Можно для тех кто в танке поподробнее пояснить, что куда вставить? У меня что-то ошибки возникают и ничего не выводит ((

  6. Azzrael 1 апреля, 2011

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

  7. Владимир 1 апреля, 2011

    Я решил поставить именно ваш код, по причине проблем с отображением комментов. Вы упомянули, что нет такой проблемы.
    Но видно не судьба :)

  8. Azzrael 2 апреля, 2011

    Да нет, я про комментарии ничего не писал. Единственная причина установить мой код – это снизить нагрузку на хостинг.

  9. Татьяна 13 сентября, 2011

    Добрый день! У меня похоже та же проблема,хостеры заставили меня отключить плагин contextual-related-posts,за превышение лимита CPU, периодически блокируют мой блог. Я впервые с эти столкнулась и не знаю,теперь какой плагин,выводящий подобные записи вставить,который не будет потреблять много ресурса. Может подскажете? Прошу учесть, что я не технарь,поэтому,если что-то связано с кодами, то мне нужно разжевать пошагово. Спасибо заранее.Татьяна

  10. Azzrael 14 сентября, 2011

    Я использую либо Simple Tags, либо вот эту, описанную в статье функцию. Других плагинов не использую. Популярным считается WP Related Posts, я его не пробовал. Мне кажется можно попробовать любой способ и выбрать подходящий для Вас.

  11. Татьяна 16 сентября, 2011

    Спасибо большое!

  12. Константин 28 августа, 2012

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

    ID, ‘poster_value’, $single = true) ?>
    <a href="”>
    <img src="/timthumb.php?src=&h=216&w=160&zc=1″ alt=””/>

    <a class="s-cel" href="”>

  13. Azzrael 28 августа, 2012

    код у вас скопировался не полностью.
    но если у вас не правильно работают комменты, то, скорее всего, вы не правильно используете глобальную переменную $post. делайте примерно так:
    global $post;
    $temp_post = $post;

    your code here

    $post = $temp_post;
    setup_postdata($post);

Есть что сказать по теме статьи? Пожалуйста - пишите!