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

Вывод похожих записей на 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)
Опубликовано 09.08.2011

Комментарии

  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. Хоть и ориентация на рубрики довольно интересна, но теги зачастую более точно указывают на близкие по содержанию записи, особенно если не злоупотреблять ими (по идее нужно лишь подсмотреть у 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. Спасибо, отличный код, поставил на один свой сайт, другой был код — не работал. Только я ещё поставил на название 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, может какое-нибудь кэширование используется?

    Ответить

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

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