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

Вывод в конце каждого поста списка связанных записей улучшает поведенческие факторы на блоге, увеличивает время нахождения на ресурсе и т.д. Для этого не обязательно устанавливать плагины и достаточно обойтись простым кодом.
То, что плагины потребляют достаточное количество ресурсов ни для кого не секрет и я стараюсь избежать их использования, если это возможно
. Одним из таких шагов навстречу оптимизации работы блога и ускорения загрузки является использование очень простого кода для вывода похожих записей на вордпресс без плагинов.
Код для вывода похожих записей на блоге
Критерием схожести будет служить присвоение рубрики статье, т.е. в конце каждого поста можно вставить похожие записи из той же рубрики. И для этого не требуется присваивать посту метки (теги) – я их и не использую, от индексации они все равно закрываются, т.к. приводят к дублированию контента внутри одного домена, удобство их использования лично для меня остается под вопросом, а оставлять для красоты – не практично…
До того как я стал использовать код для вывода похожих записей я пользовался плагином 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, 'caller_get_posts'=>1); $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() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li> <?php } echo '</ul>'; } wp_reset_query(); } ?></div>
Настройка вывода похожих записей
Обратите внимание на строку:
'showposts'=>5,
- в ней число 5 отвечает за количество выводимых похожих записей. Если число постов в рубрике меньше установленного к выводу, то будет отображаться сколько доступно, т.е. меньше. Вот в принципе и все настройки.
В CSS можно задать дополнительные настройки внешнего вида, специально для этого исполняемый код заключен в дивы (sample-posts)
. С помощью таблиц стилей есть возможность задать фон или подложить картинку на задний план, обвести в рамку, использовать другой шрифт, для списка использовать другие маркеры и т.д. – возможности ограничены лишь спецификацией CSS и собственной фантазией!
Желающих обсудить приглашаю к комментированию и если не трудно ответьте, пожалуйста, на вопрос заданный в середине поста)

можно поинтересоваться – в каком файле вы делали такие изменения?
А еще интересно как поменять надпись related posts на русскую…
Благодарю за разъяснения
Ответить
Спасибо за код, установил!
Ответить
Максим, я поместил данный код в самое начало файла comments.php и в итоге похожие записи выводятся сразу после основного текста. А где у Вас эта надпись появляется? Название блока формируется строчкой
Или Вы имеете в виду упомянутый мною плагин?
Dneprolab, пожалуйста)
Ответить
Денис, а я и не заметила, что теперь две колонки. Значит всё ОК
А ещё у меня просьба. Ты нам подробнее пиши, где такие изменения делать. Заходим в корневой каталог, папка такая-то, файл тот-то. Так проще, а значит востребованнее.
Ответить
Арина, спасибо) Как я уже пояснил Максиму – ком я вставлял в самое начало файла comments.php и для этого не требуется пользоваться доступом через ftp или через панель управления хостингом – до файла можно добраться прямо из админки – Внешний вид/Редактор. На будущее обязательно учту и буду писать подробнее!
Ответить
А можно этим способом чтобы еще под каждой ссылкой похожие записи отображалась небольшая выдержка из поста (допустим первые слов)? Так например может плагин YARPP.
Ответить
Александр, вероятно возможно, но я не знаю о таком решении…
Ответить
Я не стал парить горячку и установил Плагин YAPP вроде. Думаю злоупотреблять с плагинами не надо, а блог сильно тормозной не станет, если все будет в меру.
2-колоночный вариант вполне пригоден, это по поводу структуры сайта
Ответить
отличное решение, думаю, стоит попробовать, использую плагин Related Posts, один из трех десятков, многовато все-таки…
дизайн сайта – приятный и две колонки смотрятся хорошо, особенно на широкоформатном мониторе
Ответить
Icar, спасибо за оценку структуры, а то я долго сомневался) Вот я удивляюсь некоторым блоггерам, читая посты с заголовками наподобие «Плагины которые я использую» и приводят список из 50 пунктов
– правильно говорите, все хорошо в меру.
inter-aktiv, попробуйте. Спасибо, мне важно каждое мнение по поводу внешнего вида блога!
Ответить
Денис, я думаю что стоит просто определить для себя оптимальную сборку WP, с необходимыми плагинами и использовать ее «образ». А это уже детальная и кропотливая работа, чтобы понять как использовать ту или иную функцию.
Ответить
Icar, я люблю экспериментировать и ковыряться в исходном коде – это одновременно и удовольствие и головная боль если что то идет не так
Ответить
Хоть и ориентация на рубрики довольно интересна, но теги зачастую более точно указывают на близкие по содержанию записи, особенно если не злоупотреблять ими (по идее нужно лишь подсмотреть у relaited post переменную).
Однако надеюсь кто-нибудь дорастёт до человеческого плагина выводящего похожие статьи по текстовому наполнению, по принципу поиска с большим вхождением похожих фраз.
Ответить
Он выводит их случайным образом, а я сама выбираю, какие прописать. Мне кажется, лучше самому решать, какие статьи лучше подойдут к тому или иному посту, какие больше привлекут читателей.
Ответить
Xstroy, а я не использую теги, только пару первых дней жизни блога они наверное просуществовали, а затем канули в Лету
, так что для меня вполне пригодное решение, думаю кому нибудь еще пригодится.
Галина, так у Вас же нет на блоге Ladybloger похожих записей… или речь про другие два? Неужели вручную делаете список схожих постов в конце каждого поста?
Ответить
Webliberty,
почему нет? Есть! Ага, вручную. Это же быстро! У меня заготовки есть по тематикам. Зато я варьирую, как мне удобно.
Ответить
ladybloger, мне кажется в ручном подходе есть несколько минусов – во-первых это трудоемкость, а во-вторых вероятность пропуска одного из постов, ведь все не упомнить, применялась конкретная запись или нет, а может на какую то слишком часто ведут ссылки. Ну если Вам удобно, тогда и вопросов нет)
Ответить
Добрый день) Давно приметил ваш блог и могу сказать, что дизайн у вас «пээрсик»)) (хотя больше «лайм»), одна колонка сайдбара отлично смотрится! По идее в 2 колонки можно побольше напихать, с другой стороны, нужно ли это?) Вот и я решил остановиться на одной колонке) Мне нравится у вас, что все по цвету и по расстояниям линий все четко!) Правда в шапке не нравится значок Гугла+ и Твиттера (немного не резкие), могу предложить свой вариант Гугл+ __http://s2.ipicture.ru/uploads/20110902/6Wu3b1oo.png
Еще есть вопрос: есть у меня категории, в которых всего одна тема, можно ли сделать перенаправление на другую категорию или вовсе отключить показ похожих записей в таких категориях?)
Ответить
Что верно, то верно, проще заполнить категории, спасибо))) Да, в WP можно все значительно упростить, если только знать, как это сделать
Ответить
Дмитрий, когда у меня было две колонки, то ничего нового в сайдбарах не было – все то же, что и сейчас, поэтому смотрелось не красиво и пусто. Спасибо за оценку и указанные недочеты с кнопками, постараюсь изменить в лучшую сторону
.
В принципе можно наверное, только код похожих записей будет слишком разрастаться и тогда преимуществ отказа от плагинов не будет, легче как раз ими и воспользоваться. Но у меня другой совет, даже не связанный с отображением такого списка: наполните категории новыми статьями – тогда и читатели, заглянувшие на блог не будут испытывать чувства незаконченности)
Ответить
Крутой скрипт. Но неплохо бы вставить проверку на количество постов, если похожих «0″ то и надпись «Читайте также:» не выводить. (буду благодарна автору, если добавит такую проверку) А пока мучаюсь с плагином YARPP, раньше стоял simple tags, но после обновления движка он слёг. Вот думаю сокращать колличество плагинов.
Ответить
Mamzel, число похожих записей определяется условно, это все посты из данной категории (рубрики). А если постов в ней 0, то зачем она вообще нужна?
Ответить
Webliberty, К примеру я установила этот код в отдельный файл, и инклюдом вставляю в любой другой из данной темы. Например, в файл single.php и этот код будет работать во всех статьях всех категорий. Но если у меня есть не развитая категория с ещё одной статьёй, то зачем мне надпись «Читайте также:»
Ответить
Mamzel, а почему бы и нет? В еще один повод наполнять категории равномерно. Вот заходит новый посетитель, который впервые на блоге, и смотрит: «Ага, всего один пост, что-то здесь пустовато…» и уйдет. Или Вы исключаете такой вариант?) Как один из вариантов, избежать пустых или полупустых категорий можно временно перенеся такие посты в смежные категории.
Ответить
Да, согласен, плагины грузят сервер, поэтому от них нужно избавляться! Ставлю себе такой же код, спасибо!
Ответить
Спасибо! Замечательно работает
А вопрос посередине… Не знаю, как выглядели три колонки, но мне и так нравится
Ответить
В чем может быть проблема, вставляю код, но похожие записи так и не появляются. Если вставляю код в comments.php, то сверху просто появляется строка «Читайте также» Вставляю код через админку.
PS: Через ФТП вставил, и все заработало!
Ответить
Вячеслав, спасибо Вам)
vista, может быть нарушение кодировки произошло, не знаю. Главное в окончательном итоге все заработало. Я всегда делаю изменения и корректировку исходного кода через веб-интерфейс прямо из админки. FTP пользуюсь крайне редко, обычно если изменения приводят к фатальной ошибке и дальнейшая работа через админку не возможна.
Ответить
а как сделать чтобы выводились не последние 5 записей, а в случайном порядке?
Ответить
Михаил, воспользуйтесь плагином, этот код не подходит.
Ответить
А выводится будут последние похожие записи, или в случайном порядке ?
Ответить
Блогожитель, выводятся 5 последних записей из той рубрики, в которой располагается текущая страница.
Ответить
Установил. Работает. Спасибо.
Ответить
Привет, Денис! Спасибо тебе за статью, взял код для использования на своем блоге. Плагинами лишний раз перегружать не хочу, только вышел на цифру – 0.43 секунды при загрузке блога. Об этом я напишу на своих страницах. Как я этого достиг.
Дизайн нравится. Блог посвежел. И кстати. не сговариваясь и не заглядывая на других. У нас что-то есть схожее в темах оформления
Ответить
Владимир, привет! Лаймик))) И чего это нас так на фрукты потянуло
Отличный показатель скорости, так держать!
Ответить
Вопрос на засыпку: а есть ли подобные коды или плагины для статических страниц? У меня их больше чем записей.
Или можно ли провести реструктуризацию блога и сделать страницы записями?
Очень жаль бросать неправильный блог с издержками бесплатных курсов по сайтостроению…
Ответить
У меня сейчас такой плагин стоит. Хочу найти тот, который бы картинки выводил бы еще, а не просто текст
Ответить
idealnaja, не встречал, на то они и статические) Автоматизированных способов я не знаю, может и есть специальный плагин, нужно искать. А вручную запросто – копируете код страницы в режиме HTML, создаете новый пост, в том же режиме вставляете и сохраняете под тем же УРЛом.
Очень важно: два одинаковых адреса на блоге быть не может, поэтому предварительно изменяете его у статичной страницы на другой. После публикации поста проверяете все ли в порядке и при успешном исходе удаляете статичную страницу, чтобы не было дублирования. Операцию повторить со всеми остальными.
Виталий, попробуйте плагин IGIT Related Posts With Thumb.
Ответить
Здорово! Здорово! Здорово! Всё получилось! Спасибо!!!
Ответить
на одном из своих блогов нужно было сделать, а плагины уже не могу устанавливать, иначе сервер умрет…
Ответить
Иван, если сервер слабый, то очень рекомендую воспользоваться кэширующим плагином – нагрузка снижается в разы!
Ответить
Денис, как ты исключил ссылку на текущий пост?
Ответить
Да ничего особо не делал, использую так как есть)))
Ответить
Здравствуйте Денис. использую Ваш сайт как учебное пособие. Хочу отказаться от плагина YARPP на своем сайте который связывает посты и воспользоваться кодом который Вы представили. Подскажите не повлечет ли отказ от плагина к отказу каких либо иных функций сайта. Спасибо.
Ответить
Анатолий, конечно нет, ничего страшного не случится, он отвечает только за выполнение своих функций. Если сомневаетесь, то просто отключите плагин, не удаляя его и закомментируйте сроки вывода в шаблоне, если таковые добавляли.
Ответить
Спасибо Денис, код встал, как будто там и стоял. Все работает. Подскажи пожалуйста, как поменять размер шрифта и цвет словосочетания в этом коде «ЧИТАТЬ ТАКЖЕ» и размер и тип шрифта ( мне нужен курсив)которым выводятся посты.
Ответить
Анатолий, можно я выскажу свою точку зрения? В файле style.css вставьте строчки
.sample-posts a {font-style:italic; font-size:13px}
.sample-posts h4 {color:#3333333}
Ответить
Только на одну троечку поменьше )
Ответить
Спасибо Владимир. А куда вставить строчки , в начало в конец в середину.
Ответить
Анатолий, в данном случае не имеет значения. Ставьте в конец, и еще, чтобы не запутаться потом, комментируйте код, очень полезная привычка. Благодаря символам браузер не увидит комментариев
/* Стили для похожих записей */
.sample-posts a {font-style:italic; font-size:13px}
.sample-posts h4 {color:#333333}
/* Стили для похожих записей */
Вот прямо таким образом и вставьте
Ответить
Спасибо Владимир, все работает.
Ответить
Анатолий, замените строчку
.sample-posts h4 {color:#333333}
на
.sample-posts h4 {color:#63CFF6}
Так будет лучше
Ответить
Спасибо Владимир. Заменил, но не понял , что изменилось.
Ответить
Спасибо за статью! но у меня есть достаточно каверзный вопрос…
У меня на блоге статьи имеют одинаковую часть названия «польза и вред *****».. Так вот, хотелось бы как-нибудь изменить код таким образом, чтобы за место названий статьи выводилось бы, к примеру, название метки статьи, но url бы при этом не менялся(кстати, вот как раз один из случаев, когда они нужны, эти метки)). А то слишком много дублей получается(польза и вред того-то, польза и вред того-то и т.п.), что наверняка не скажется положительно для поисковых систем. Пробовал в этом месте > заменять the title на the_tag и т.п… получалось вывести этот список меток, но вот только и сам url менялся
Ответить
Не видел как выглядит сайт с тремя колонками, но такая структура с правым сайдбаром явно лучше для восприятия.
По теме – спасиб, только было хотел установить similar post ))
И все таки, можно сделать вывод похожих записей по меткам ? Не соглашусь насчет их бесполезности, когда речь идет о сотнях названий (в моем случае исполнителей), столько категорий же не создашь, сайдбар будет огромным и некрасивым.
Ответить
Вижу здесь разобрались и без меня
Спасибо, Владимир, что помог Анатолию справиться с этими нехитрыми премудростями!
Ответить
Webliberty, нет проблем
Ответить
Kanalie, все верно, урл при этом будет меняться. А вообще использование похожих заголовков у страниц не рекомендуется. Заголовки давайте уникальные, а уже внутри текста разбивайте на подзаголовки – польза того-то, вред того-то и так далее. Не стоит пытаться уместить все в одном заголовке.
Dreamer, воспользуйтесь плагином. В данном случае возникнет ситуация, которую описал Kanalie. А рубрики можно сформировать не по исполнителям, а по жанрам, к примеру.
Ответить
В какой кодировке нужно сохранять comments.php? В каких только не пробовал выводит крякозябры вместо «читайте также»
Ответить
Классно! У меня получилось!
По запросу «вывод похожих записей» в Яндексе Ваш сайт в ТОП-1! Молодец!
Ответить
Спасибо за код, побег пробовать у себя поставить, надеюсь получится.
Ответить
VPK, стандартная кодировка на WP – UTF8. Если пользуетесь Notepad++ то при сохранении изменений используйте кодировку UTF-8 (без BOM), обычный блокнот Windows в этом случае не подойдет.
Ответить
Денис, здравствуйте, я все сделала по Вашим советам, все получилось, но не устраивает размер шрифта, он маленький.
Владимир Жданов объяснил, что надо сделать, но мне это не помогло, шрифт не поменялся, возможно, я неправильно что-то сделала.
Я излазила файл style.css вдоль и поперек, но не могу найти место, где стоит ограничение на увеличение размера шрифта. И поэтому у меня на блоге в похожих записях, в подписке на обновления и в форме для комментариев стоит маленький шрифт. Как это изменить? Если возможно подскажите, пожалуйста.
Ответить
Елена, я снова попытаюсь ответить. Попробуйте написать правило
Ответить
Елена, если решение Владимира все равно не поможет, то попробуйте:
По крайней мере если вносить такие изменения с помощью инструментов разработчика в браузере, то шрифт меняется, должно помочь.
Ответить
Владимир, спасибо за отклик, но,прежде чем опять залесть в style.css,я хочу кое-что прояснить для себя, поэтому буду благодарна за ответ.
Итак, font-size отвечает за размер шрифта, это я понимаю, но файл style.css разбит на части, каждая часть, как я поняла, отвечает за что-то определенное на сайте.Значит, эту строчку нельзя просто вставить куда попало, так? Надо ее вписать именно в ту часть файла, которая отвечает за текст в в похожих записях, в подписке на обновления и в форме для комментариев. Где эта часть? Вот для меня вопрос.
Дальше, Владимир, эта строчка, что Вы указали, разве она не должна быть заключена в какие-нибудь теги или что-то еще, я не знаю, как это называется. Что, просто так взять и, скажем, в конце файла написать отдельной строкой?
Ответить
Елена, можно просто скопировать предложенные варианты и вставить в самый конец style.css, ничего изменять/добавлять не нужно. И действуйте смелее, будьте увереннее, ничего страшного не случиться, тем более при редактировании стилей. А если закрадываются сомнения и опаска, то делайте резервные копии, сохраняйте изменяемые файлы куда нибудь в отдельное место.
Ответить
Все сделала, ничего не получается, я даже поставила 20px, все равно везде шрифт маленький.
Ответить
Елена, обновите свою страницу Ctrl+F5 у меня открыта вкладка с Вашим блогом и обновлял страницу, чтобы посмотреть есть изменения или нет – шрифт меняется (по секрету скажу, что 20 шрифт очень большим кажется
)
Ответить
Елена, я смотрю, у Вас просто огромный шрифт
Как раз двадцаточка. У Вас случаем не стоит плагина hyper cache? Он может просто закешировать. В общем, у Вас все работает. Сделайте 14 шрифт
Ответить
Спасибо, ребята, за помощь.
Плагин такой не стоит, хоть шрифт 20, хоть 14, он у меня МАЛЕНЬКИЙ.
Все обновляла. Все, больше не знаю, что делать.
Что подумала, а есть ли зависимость style.css от настроек браузера?
Ответить
Елена, я Вас уверяю, шрифт сейчас 14 стоит. Попробуйте почистить кэш в браузере, зайдите с другого браузера, но шрифт изменен и выглядит хорошо.
Да, иногда внешний вид выглядит по разному в разных браузерах, но это не тот случай, специально сейчас проверил в трех установленных у меня.
Ответить
Елена, почистите в браузере кеш. 100%
Ответить
Все! ЗАРАБОТАЛО! И года не прошло!
Спасибо, спасибо, спасибо!
Скажите, пожалуйста, если уж на то пошло, а как выглядит шрифт в форме для комментариев, я имею ввиду «имя», «mail», «тема».Он у меня очень маленький, можно это тоже как-то изменить одной строчкой?
Еще раз СПАСИБО.
Ответить
Елена, вставьте
Ответить
Получилось, Денис, спасибо!
Чтобы я без вас всех делала!
Ответить
Елена, обращайтесь если что
Ответить
Денис, здравствуйте, после обновления WP постепенно вылезают разные «косяки». Вот один из них: в «похожих записях», при наведении курсора перестал меняться цвет текста, то есть записи кликабельны, но без измениения цвета, не знаю, как правильно это называется. Вы не знаете, как это исправить?
Ответить
Подскажите в какой именно файл php нужно вставить код?
Ответить
makar1711, смотря где вы хотите их выводить,если непосредственно в статьях, то в файл single.php
Ответить
Елена, для соответствующего класса применить стиль оформления, настраивающий новый цвет при наведении указателя мыши.
makar1711, все зависит от того где хотите видеть список, от верстки. По идее ведь у нас похожие записи располагаются в конце статьи, поэтому код можно вставить в файле single.php – главное в нужное место. У себя же я его поставил в самое начало comments.php – как раз между текстом и комментариями получилось.
Ответить