Вывод похожих записей на WordPress без плагинов

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

Вывод похожих записей без плагинов на блоге вордпресс

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

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

Код для вывода похожих записей на блоге

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

До того как я стал использовать код для вывода похожих записей я пользовался плагином WordPress Related Posts и хочу заметить, что внешний вид списка ничем не отличается ни при использовании плагина, ни после отказа он него в пользу кода. И это очень хорошо, что читатель внешне не находит отличий, ему не приходится привыкать к чему-то новому. Да я и сам люблю стабильность.

Вывод похожих записей на блоге

Немножечко про стабильность… Вот уже на протяжении двух месяцев Блог Свободного Вебмастера немного изменил свой внешний вид и перешел от трехколоночного дизайна (2 сайдбара + основная часть) к двухколоночному (остался один правый сайдбар, основная часть расширилась). Я так и не находил времени узнать у своих читателей мнения по поводу изменений. Как Вы считаете, так лучше?

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

<div class="sample-posts">
<h4>Читайте также:</h4>
	<?php
	$categories = get_the_category($post->ID);
	if ($categories) {
		$category_ids = array();
		foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
		$args=array(
			'category__in' => $category_ids,
			'post__not_in' => array($post->ID),
			'showposts' => '5',
			'orderby' => 'rand',
			'ignore_sticky_posts' => '1',
			'no_found_rows' => true,
			'cache_results' => false
		);
		$my_query = new wp_query($args);
		if( $my_query->have_posts() ) {
			echo '<ul>';
			while ($my_query->have_posts()) {
				$my_query->the_post();
				?>
				<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
				<?php
			}
			echo '</ul>';
		}
		wp_reset_query();
	}
	?>
</div>

Настройка вывода похожих записей

Обратите внимание на строку:

'showposts' => '5',

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

По умолчанию в списке будут находиться самые последние записи из рубрики, если необходимо выводить их в случайном порядке (рандомно), то после этой строки добавьте еще одну:

'orderby' => 'rand',

Вот в принципе и все настройки.

В CSS можно задать дополнительные настройки внешнего вида, специально для этого исполняемый код заключен в класс .sample-posts

С помощью таблиц стилей есть возможность задать фон или подложить картинку на задний план, обвести в рамку, использовать другой шрифт, для списка использовать другие маркеры и т.д. — возможности ограничены лишь спецификацией CSS и собственной фантазией!

Желающих обсудить приглашаю к комментированию и если не трудно ответьте, пожалуйста, на вопрос заданный в середине записи)

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(7 голосов, в среднем: 4.4 из 5)
  1. Арина

    Денис, а я и не заметила, что теперь две колонки. Значит всё ОК 😎
    А ещё у меня просьба. Ты нам подробнее пиши, где такие изменения делать. Заходим в корневой каталог, папка такая-то, файл тот-то. Так проще, а значит более востребовано.

    Ответить

  2. Webliberty

    Арина, спасибо) Код я вставлял в самое начало файла comments.php и для этого не требуется пользоваться доступом через ftp или через панель управления хостингом — до файла можно добраться прямо из админки — Внешний вид >> Редактор. На будущее обязательно учту и буду писать подробнее!

    Ответить

  3. Icar

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

    Двух-колоночный вариант вполне пригоден, это по поводу структуры сайта 🙂

    Ответить

  4. inter-aktiv

    Отличное решение, думаю, стоит попробовать, сейчас использую плагин Related Posts, один из трех десятков, многовато все-таки…

    Дизайн сайта — приятный и две колонки смотрятся хорошо, особенно на широкоформатном мониторе.

    Ответить

  5. Webliberty

    Icar, спасибо за оценку, а то я долго сомневался) Вот я удивляюсь некоторым блоггерам, читая посты с заголовками наподобие «Плагины которые я использую» и приводят список из 50 пунктов — правильно говорите, все хорошо в меру.

    inter-aktiv, попробуйте. Спасибо, мне важно каждое мнение по поводу внешнего вида блога!

    Ответить

  6. Icar

    Денис, я думаю что стоит просто определить для себя оптимальную сборку WP, с необходимыми плагинами и использовать ее «образ». А это уже детальная и кропотливая работа, чтобы понять как использовать ту или иную функцию.

    Ответить

  7. Webliberty

    Icar, я люблю экспериментировать и ковыряться в исходном коде — это одновременно и удовольствие и головная боль если что-то идет не так 😀

    Ответить

  8. Xstroy

    Хоть и ориентация на рубрики довольно интересна, но теги зачастую более точно указывают на близкие по содержанию записи, особенно если не злоупотреблять ими (по идее нужно лишь подсмотреть у relaited post переменную) 😉

    Однако надеюсь кто-нибудь дорастёт до человеческого плагина выводящего похожие статьи по текстовому наполнению, по принципу поиска с большим вхождением похожих фраз.

    Ответить

  9. ladybloger

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

    Ответить

  10. Webliberty

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

    Галина, так у Вас же нет на блоге Ladybloger похожих записей… Или речь про другие два? Неужели вручную делаете список схожих постов в конце каждого поста?

    Ответить

  11. ladybloger

    Почему нет? Есть! Ага, вручную. Это же быстро! У меня заготовки есть по тематикам. Зато я варьирую, как мне удобно.

    Ответить

  12. Webliberty

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

    Ответить

  13. Дмитрий

    Добрый день) Давно приметил ваш блог и могу сказать, что дизайн у вас «пээрсик» (хотя больше «лайм»), одна колонка сайдбара отлично смотрится! По идее в 2 колонки можно побольше напихать, с другой стороны, нужно ли это?) Вот и я решил остановиться на одной колонке) Мне нравится у вас, что все по цвету и по расстояниям линий все четко!

    Правда в шапке не нравится значок Гугла+ и Твиттера (немного не резкие), могу предложить свой вариант Гугл+ Еще есть вопрос: есть у меня категории, в которых всего одна тема, можно ли сделать перенаправление на другую категорию или вовсе отключить показ похожих записей в таких категориях?

    Ответить

  14. Дмитрий

    Что верно, то верно, проще заполнить категории, спасибо))) Да, в WP можно все значительно упростить, если только знать, как это сделать 🙂

    Ответить

  15. Webliberty

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

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

    Ответить

  16. Mamzel

    Крутой скрипт. Но неплохо бы вставить проверку на количество постов, если похожих «0» то и надпись «Читайте также» не выводить (буду благодарна автору, если добавит такую проверку). А пока мучаюсь с плагином YARPP, раньше стоял simple tags, но после обновления движка он слёг. Вот думаю сокращать количество плагинов.

    Ответить

  17. Webliberty

    Mamzel, число похожих записей определяется условно, это все посты из данной категории (рубрики). А если постов в ней 0, то зачем она вообще нужна?

    Ответить

  18. Mamzel

    Webliberty, к примеру я установила этот код в отдельный файл, и инклудом вставляю в любой другой из данной темы. Например, в файл single.php и этот код будет работать во всех статьях всех категорий. Но если у меня есть не развитая категория с ещё одной статьёй, то зачем мне надпись «Читайте также»

    Ответить

  19. Webliberty

    Mamzel, а почему бы и нет? В еще один повод наполнять категории равномерно. Вот заходит новый посетитель, который впервые на блоге, и смотрит: «Ага, всего один пост, что-то здесь пустовато…» и уйдет. Или Вы исключаете такой вариант?) Как один из вариантов, избежать пустых или полупустых категорий можно временно перенеся такие посты в смежные категории.

    Ответить

  20. Блогожитель

    А выводится будут последние похожие записи, или в случайном порядке ?

    Ответить

  21. Webliberty

    Блогожитель, выводятся 5 последних записей из той рубрики, в которой располагается текущая страница.

    Ответить

  22. Владимир

    Привет, Денис! Спасибо тебе за статью, взял код для использования на своем блоге. Плагинами лишний раз перегружать не хочу, только вышел на цифру — 0.43 секунды при загрузке блога. Об этом я напишу на своих страницах. Как я этого достиг.

    Дизайн нравится. Блог посвежел. И кстати. не сговариваясь и не заглядывая на других. У нас что-то есть схожее в темах оформления 😉

    Ответить

  23. Webliberty

    Владимир, привет! Лаймик) И чего это нас так на фрукты потянуло 😀 Отличный показатель скорости, так держать!

    Ответить

  24. Анатолий

    Здравствуйте Денис. использую Ваш сайт как учебное пособие. Хочу отказаться от плагина YARPP на своем сайте который связывает посты и воспользоваться кодом который Вы представили. Подскажите не повлечет ли отказ от плагина к отказу каких либо иных функций сайта. Спасибо.

    Ответить

  25. Webliberty

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

    Ответить

  26. Kanalie

    Спасибо за статью! Но у меня есть достаточно каверзный вопрос.

    У меня на блоге статьи имеют одинаковую часть названия «польза и вред…» Так вот, хотелось бы как-нибудь изменить код таким образом, чтобы за место названий статьи выводилось бы, к примеру, название метки статьи, но url бы при этом не менялся. А то слишком много дублей получается, что наверняка не скажется положительно для поисковых систем.

    Пробовал заменять the_title на the_tag — получилось вывести этот список меток, но вот только и сам url менялся.

    Ответить

  27. Dreamer

    Не видел как выглядит сайт с тремя колонками, но такая структура с правым сайдбаром явно лучше для восприятия.

    По теме — спасибо, только было хотел установить similar post) И все таки, можно сделать вывод похожих записей по меткам ? Не соглашусь насчет их бесполезности, когда речь идет о сотнях названий (в моем случае исполнителей), столько категорий же не создашь, сайдбар будет огромным и некрасивым.

    Ответить

  28. Webliberty

    Kanalie, все верно, урл при этом будет меняться. А вообще использование похожих заголовков у страниц не рекомендуется. Заголовки давайте уникальные, а уже внутри текста разбивайте на подзаголовки — польза того-то, вред того-то и так далее. Не стоит пытаться уместить все в одном заголовке.

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

    Ответить

  29. VPK

    В какой кодировке нужно сохранять comments.php? В каких только не пробовал выводит крякозябры вместо «читайте также»

    Ответить

  30. Webliberty

    VPK, стандартная кодировка на WP — UTF8. Если пользуетесь Notepad++ то при сохранении изменений используйте кодировку UTF-8 (без BOM), обычный блокнот Windows в этом случае не подойдет.

    Ответить

  31. Елена

    Денис, здравствуйте, я все сделала по Вашим советам, все получилось, но не устраивает размер шрифта, он маленький.

    Я излазила файл style.css вдоль и поперек, но не могу найти место, где стоит ограничение на увеличение размера шрифта. И поэтому у меня на блоге в похожих записях, в подписке на обновления и в форме для комментариев стоит маленький шрифт. Как это изменить? Если возможно подскажите, пожалуйста.

    Ответить

  32. Webliberty

    Елена, обновите свою страницу Ctrl+F5 у меня открыта вкладка с Вашим блогом и обновлял страницу, чтобы посмотреть есть изменения или нет — шрифт меняется (по секрету скажу, что 20 шрифт очень большим кажется).

    Ответить

  33. Webliberty

    Елена, попробуйте применить следующее свойство:

    .sample-posts li {
    	font-size:14px
    }

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

    Ответить

  34. Елена

    Все сделала, ничего не получается, я даже поставила 20px, все равно везде шрифт маленький.

    Ответить

  35. Елена

    Все! ЗАРАБОТАЛО! И года не прошло! Спасибо! Скажите, пожалуйста, если уж на то пошло, а как выглядит шрифт в форме для комментариев, я имею ввиду «имя», «mail», «тема».Он у меня очень маленький, можно это тоже как-то изменить одной строчкой?

    Ответить

  36. Webliberty

    Елена, вставьте следующее:

    #respond label {
    	font-size:14px
    }

    Ответить

  37. Елена

    Получилось, Денис, спасибо! Чтобы я без вас делала! 🙂

    Ответить

  38. Кирилл

    А что это за строчка?

    wp_reset_query();

    Это плагин дополнительный? 😮

    Ответить

  39. Webliberty

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

    Ответить

  40. Елена

    Здравствуйте! Спасибо за информацию! У меня получилось установить, но внешний вид немного не устраивает: вот у Вас перед каждой ссылкой на похожую статью стоит маркер и отступ от края есть. А у меня все прилипло к левой стороне. И еще вопросик: вылезает на страницах сайта (тех, что в меню), можно ли что-то с этим сделать?

    Ответить

  41. Webliberty

    Елена, не случайно я обернул код в дивы — применяйте различные стили для .sample-posts в CSS, настраивайте внешний вид на свой вкус 😉

    Вероятно вставили код не в тот файл или не то место — вот и появляется не там где нужно, попробуйте переставить в другое место. Конкретных рекомендаций дать не смогу — все зависит от темы WP.

    Ответить

  42. Ольга

    Спасибо, Денис! Давно хотела установить эту функцию. Получилось за 1 минуту. А блог в две колонки выглядит вполне симпатично 😉

    Ответить

  43. Андрей

    Здравствуйте. Помогите решить такую задачку. Код я вставил, все работает. Но фразу «Интересные статьи по теме» (я изменил заглавие) выводит даже там где выводить не должен — страницы «О блоге», «Карта блога» и «контакты».

    Как можно это исправить? Чтобы в статьях остался, а на страницах не отображался? И еще у меня в теме нет файла Сингл, пришлось вставлять в loop-single.php Заранее спасибо.

    Ответить

  44. Webliberty

    Андрей, здравствуйте, все зависит от темы, от того как она сверстана, поэтому Вам необходимо вставить код в том месте, где формируется страница с одной записью. Где это место попробуйте выяснить экспериментом.

    Ответить

  45. Алексей

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

    Ответить

  46. Сергей

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

    Хочу немного их увеличить, подскажите пожалуйста, если не трудно.

    Ответить

  47. Webliberty

    Сергей, единого решения нет, их можно искать где угодно, в первую очередь смотрите файлы comments.php и functions.php

    Ответить

  48. Светлана Ковалева

    Спасибо, как раз то, что нужно! Результатов пока не видно, я в Денвере сейчас тему настраиваю, планирую перенос блога на WordPress.

    Ответить

  49. Полина

    Здравствуйте.
    Очень благодарна за Ваш код. Применила, все получилось. Но заметила, что в записях выводятся только последние посты. А записей в категориях много. Не могли бы Вы подсказать, как изменить этот же код, чтобы выводились посты не последние, а в случайном порядке?
    Заранее, спасибо за ответ! 🙂

    Ответить

  50. Полина

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

    'showposts'=>5,

    добавить

    'orderby'=>rand,

    Всем удачного сайтостроения 🙂

    Ответить

  51. Александр

    Добрый вечер, подскажите пожалуйста а как сделать так чтобы список отображался горизонтально? Заранее благодарю.

    Ответить

  52. Полина

    Александр, чтобы посты выводились горизонтально, надо в файле стилей добавить:

    .sample-posts li {
    	list-style-type:none;
    	float: left;
    	width: 220px;
    }

    Ответить

  53. Олег

    Спасибо огромное, получилось! Без вас бы точно не справился!

    Ответить

  54. prostolinux

    Спасибо, отличный код, поставил на один свой сайт, другой был код — не работал. Только я ещё поставил на название h3, а на сами ссылки h4 — должно привлекать внимание, так как картинок не выводит, да они и не нужны 😉

    Ответить

  55. Мария

    Спасибо. Все отлично работает

    Ответить

  56. Александр

    Доброго времени суток! У меня вопрос как вставить вывод похожих записей в тему Montezuma? Во все остальные темы код ложиться отлично, а вот в эту ну прям не хочет очень капризная тема…

    Ответить

  57. Webliberty

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

    Ответить

  58. Андрей

    Спасибо. Воспользовался. Понравилось. Парочку советов из комментариев унес.

    Ответить

  59. Вера

    Здравствуйте! Установила код в single.php по вашей инструкции, но похожие записи на странице не вывелись, наверно проблемы в теме, подскажите пожалуйста.

    Ответить

  60. Webliberty

    Вера, здравствуйте! Быть может попали внутрь цикла, попробуйте различные варианты вставки, чуть ниже или выше расположите.

    Ответить

  61. Дмитрий

    Спасибо автору, реализовал ваш код на сайте всё работает отлично, плюс доработал с выводом фотографий

    P.S Сам код после доработки плюс стили весит около килобайта, против плагина про который тут пишут в 1,5 мегабайта. Что они в них пихают?

    Ответить

  62. Webliberty

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

    Ответить

  63. Артем

    Спасибо большое автору! Все супер получилось, избавился еще от одного плагина!

    Ответить

  64. Андрей

    Добрый день. Полезно, даже очень. Подскажите пожалуйста, как сделать такой блок форма подписки и линейка соц.сетей?

    Ответить

  65. Webliberty

    Андрей, лучший способ узнать — посмотреть исходный код) У меня использована комбинация формы подписки Feedburner плюс кнопки соцсетей Share42.

    Ответить

  66. Андрей

    Webliberty, А как Вы сделали именно отдельным блоком? Мне это очень хочется сделать? Не просто на странице в файле page.php, под статьей. А именно отдельный блок с обрамлением и т.д. 😐

    Ответить

  67. Webliberty

    Андрей, как раз наоборот, код вставлен в самое начало файла comments.php. А стили для рамки и фона заданы в CSS.

    Ответить

  68. Андрей

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

    Ответить

  69. Дмитрий

    Всем привет! Подскажите как задать стили блоку ссылок похожих статей. Как сделать чтобы выводились картинки?

    Ответить

  70. Webliberty

    Андрей, чуть выше Полина предложила решение как выводить не последние записи категории, а рандомно. Правда из той же рубрики — на то они и похожие записи)

    Дмитрий, привет! Можете обернуть код в любой класс и задать ему стили. Если плохо разбираетесь — воспользуйтесь просмотром кода элемента в браузере. Чтобы сделать похожие записи с картинками без плагина необходимо модернизировать код, заменив строку:

    <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>

    на новую:

    <li><a href="<?php the_permalink() ?>"><?php the_post_thumbnail('thumbnail'); ?><?php the_title(); ?></a></li>

    Функция the_post_thumbnail выводит миниатюры записи. Внешний вид настройте стилями. Небольшую часть, отвечающую за расположение картинок в одну строку, привела Полина в комментариях выше, за что ей спасибо) Для этого в style.css добавьте:

    .sample-posts li {
    	list-style-type:none;
    	float: left;
    	width: 220px;
    }

    Ответить

  71. Ирина Лирнецкая

    Спасибо огромное! У меня все получилось с первого раза, хотя я абсолютный чайничек? но вот когда захотелось картинки добавить, чтобы похожие статьи с фотографиями выводились, ничего не сработало. Я так и не разобралась, как модернизировать код: вставляла строку уже куда угодно, но не получилось. Все же я совсем «ноль в этом деле. Может кто-то подскажет чего-нибудь, а? 😳

    Ответить

  72. Webliberty

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

    Чтобы включить их поддержку, добавьте в файл functions.php следующий код:

    if ( function_exists( 'add_theme_support' ) ) { 
    	add_theme_support( 'post-thumbnails' );
    	set_post_thumbnail_size( 200, 150, true );
    }

    где 200, 150 — ширина и высота миниатюры.

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

    Ответить

  73. Ирина Лирнецкая

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

    Поколдую еще раз, спасибо огромное. В принципе, и так неплохо, но картинки интереснее/ Честно говоря, я только у Вас нашла этот способ, на всех блогах только плагины описаны, либо совсем уж для просвещенных. Поэтому 5 с плюсом 😎

    Ответить

  74. Виктория

    Огромнейшее спасибо автору и отдельная благодарность всем комментаторам! Очень полезная статья и хорошо изложена. А по поводу внешнего вида даже не смолчу, потому что при первом броске взгляда он мне очень понравился. Красиво, лаконично и ничего лишнего — обожаю это! 🙂

    А еще такое чувство, что ну такой уже легонький и шустренький сайт… Это отсутствие плагинов так жизнь облегчает?

    Ответить

  75. Webliberty

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

    Ответить

  76. Геннадий Ольховский

    Спасибо за интересную информацию, думаю нужно попробовать. Только хотелось бы полный код с выводом миниатюр. Если можно 😉

    Ответить

  77. Webliberty

    Геннадий, а в чем возникла сложность? Берете за основу код приведенный в статье, а затем в нем заменяете всего одну строку, ту которая начинается с <li>. Пример этой строки с миниатюрами приведен в комментариях выше.

    Ответить

  78. Vit

    Я заменил подобным кодом плагин который повышал нагрузку. Без плагина страница грузится намного быстрее! На другом сайте тоже поставил код вывода похожих записей, но не из рубрик, а из меток. Работает гуд.

    Ответить

  79. Алексей

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

    Ответить

  80. Webliberty

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

    Ответить

  81. Алексей

    Webliberty, Отлично! Всё работает! Скажите, как изображения вставить вместе с текстом. Возможно?

    Ответить

  82. Pavel

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

    Ответить

  83. Webliberty

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

    Ответить

  84. Михаил

    Подскажите как вообще вставлять какие либо записи в «Читайте также».
    У меня только отображается надпись «Читайте также» и всё.
    Как вообще что либо вставлять в похожие записи? Куда заходить и что писать вообще?

    Ответить

  85. Webliberty

    Михаил, записи появляются автоматически, они берутся из той же рубрики, в которой находится текущая статья. В рубрике, случайно, не одна единственная статья?

    Ответить

  86. Андрей

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

    Ответить

  87. Александр

    Здравствуйте, мне нужно,чтобы похожие записи выводились внизу поста на всю ширину страницы и когда вставляешь код после вывода сайдбара, всё отображается, только похожие записи не меняются, в любом посте и в любой категории одни и те же!? Я так понимаю, это связано с тем, что код стоит после дива content… Как можно победить эту проблемку?

    Ответить

  88. Webliberty

    Александр, код необходимо вставлять внутри цикла:

    <?php if (have_posts()): ?>
    <?php while (have_posts()): the_post(); ?>
    ...
    код
    ...
    <?php comments_template(); ?>
    <?php endwhile; ?>
    <?php endif; ?>

    Вы его размещаете после вывода сайдбара, соответственно там цикл уже завершен, потому и не работает. Попробуйте добавить его перед функцией comments_template() или, чтобы наверняка, — в файле comments.php.

    Ответить

  89. Виктор

    Какую добавку в код вывода «похожих записей без плагина» нужно сделать, чтобы сортировка выполнялась по всем меткам, КРОМЕ одной, для определенности кроме метки с ID=100?

    Ответить

  90. Webliberty

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

    Ответить

  91. Виктория

    Здравствуйте, а есть ли возможность исключить какие-то рубрики? А то у меня получается, что почти всё подряд выводится этим кодом, вместо похожих записей.

    Ответить

  92. Webliberty

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

    Ответить

  93. Виктория

    Webliberty, у меня на сайте меню составлено на основе рубрик. «Новости», «рецензии», «интервью», «статьи». Но каждая новость, например, имеет еще и другие присвоенные рубрики: например, «Accept» и «heavy metal». И целесообразнее было бы, чтобы посетитель внизу видел, какие еще есть новости по жанру heavy metal, а так же про группу Accept, чем все подряд новости (все подряд и так можно посмотреть, щелкнув соответствующую страничку меню).

    Ответить

  94. Webliberty

    Виктория, тогда можно исключить определенную рубрику по ID, добавив:

    'category__not_in' => '10',

    Где 10 — ID рубрики, которую нужно исключить. Узнать его можно в консоли на странице Рубрики. Просто наведите указатель мыши на ее название и в строке состояния браузера увидите …&tag_ID=10…

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

    Ответить

  95. Виктория

    Webliberty, хм, да… Немного не то получилось) Исключились все записи с рубрикой «новости», не смотря на то, что к ним параллельно присвоены и другие рубрики. Наверное единственным решением здесь будет оставить всё в единой рубрике «новости», но присвоить метки со стилем и исполнителем… И выводить похожие записи по меткам.
    Но все равно спасибо за помощь!

    Ответить

  96. Ирина

    Здравствуйте. Подскажите как запретить вывод похожих записей в некоторых категориях. То есть имеем три категории А Б С. Вот похожие записи нужно вывести в категории Б и С, а в категории А вывод похожих записей не выводить. Спасибо.

    Ответить

  97. Ирина

    Спасибо. Буду пробовать.

    Ответить

  98. Webliberty

    Ирина, первое что приходит на ум — использовать разные форматы записей. Чтобы включить встроенную поддержку форматов необходимо добавить в functions.php, например, такие форматы:

    add_theme_support ( 'post-formats', array('audio','gallery','video') );

    И затем создавайте новый файл шаблона с применением функции get_post_format(). При публикации статей в категорию А выбирайте свой формат, в шаблоне которого не будет выводиться код с похожими записями.

    Ответить

  99. Кирилл

    Сто миллионов благодарностей! Думал плагин ставить и нашел эту инструкцию, спасибо!

    Ответить

  100. Татьяна

    А не подскажите, как сделать так, чтобы после слов «Читать также» выходило не только текст статьи, но и отображалась фотография статьи?

    Ответить

  101. Webliberty

    Татьяна, почитайте, пожалуйста, комментарии выше — был такой вопрос и ответ на него 😉

    Ответить

  102. Стас

    Спасибо Автору за статью, за 2 минуты решил свою задачу! 🙂

    Ответить

  103. Maksim

    Скажите, а как прописать это 'category__not_in' => '10', для нескольких рубрик?

    Ответить

  104. Михаил

    А вот у меня вопрос совершенно другой. Но непосредственно относиться к этой теме. Я успешно установил на сайт код, воспользовавшись вашими инструкциями. Но столкнулся с одной «проблемкой». Дело в том, что что на главной у меня выводиться отдельная страница. И теперь, внизу появилась строка «Рекомендуем к прочтению» под которой соответственно нет никаких записей, так как это отдельная страница.

    Подскажите как исправить эту ситуацию. Чтобы на главной странице перестали выводиться «рекомендации», а на остальных остались?

    Ответить

  105. Webliberty

    Maksim, используйте массив с перечислением ID выбранных категорий:

    'category__not_in' => array(10,11),

    Михаил, экспериментируйте с местом размещения. Полагаю, что на главной странице, являющейся статической, комментарии отсутствуют. Вставляйте код где-то в начале файла comments.php.

    Ответить

  106. Sveta

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

    Ответить

  107. Webliberty

    Sveta, зависит от способа создания дополнительных полей. Если за основу взяты метки, то они имеют таксономию post_tag.

    Откройте базу данных и найдите таблицу wp_term_taxonomy. Обратите внимание на значения term_taxonomy_id и taxonomy дополнительных полей — их Вы и должны использовать в своем коде аналогично выборке по категориям.

    Ответить

  108. Sveta

    Не получается, ничего 🙁
    Вы не могли бы написать код для вывода похожих записей по таксономиям, а не по категориям и меткам, пожалуйста.
    Допустим создана произвольная таксономия taxonomy=color.
    Название ее color. И разные значения у нее. Как выводить записи только по этому параметру? Возможно ли это вообще?

    Ответить

  109. Инна

    Автору за предоставленный материал — спасибо. Долго не возможно было вывести два плагина в одном блоке, но теперь с кодами — получилось. Оформление записей дело уже наживное. Еще раз спасибо!

    Ответить

  110. Михаил

    Добрый день! Как по потребления ресурсам сервера? На сайте почти миллион страниц. Будет ли этот код перебирать все статьи из рубрики? Если да — то это ужасный моветон.

    Плагин типа Yarpp конечно подгрузит в БД кеш записей мегабайт на 300, но это ничего по сравнению с 5,5 Гб строк баз данных. Скорость выявления похожих все равно будет медленнее скриптом. Или же скрипт работает иначе?

    Ответить

  111. Webliberty

    Михаил, скрипт получает полный список записей из текущей рубрики и рандомно выводит записи, их количество настраивается. Если на сайте огромное количество страниц и обработка запроса к базе данных ощутимо долгая, то воспользуйтесь более рациональными решениями.

    Что касается плагина Yet Another Related Posts Plugin (YARPP), то в настоящий момент он не доступен для загрузки на официальном сайте WordPress. Будьте осторожны, он может быть закрыт из-за банального отсутствия обновлений на протяжении нескольких лет, но гораздо хуже, если он имеет уязвимости.

    Ответить

  112. Алекс

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

    Ответить

  113. Webliberty

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

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

    Ответить

  114. Alex

    У меня почему-то не выводит записи слуайно с данным кодом, а только попорядку. Хотя ‘orderby’ => ‘rand’, использую.

    Ответить

  115. Webliberty

    Alex, может какое-нибудь кэширование используется?

    Ответить

:) ;) :D :( :cry: :| :o :P 8-) :oops: :roll: :idea:

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