Май
4
4

Выводим похожие страницы в WordPress сайте с помощью модуля и сниппета

Похожие страницы

Реализацию похожих записей в WP я неоднократно обсуждал ранее: можете почитать про отображение постов с миниатюрами, похожие заметки по контенту (содержимому), внедрение опции без плагинов и др. Эта фишка весьма полезна как для посетителей сайта, так и в плане создания перелинковки.

Сегодня хочу дополнить имеющиеся публикации еще одной статьей по теме — будем учиться выводить похожие страницы в WordPress. По умолчанию, данная функция не предусмотрена, но вполне вероятно вам захочется/понадобится ее реализовать. Традиционно существует два варианта пути: обратиться за помощью к специальным плагинам или через вставку сниппета в файле functions.php.

Важные нюансы

Сначала следует упомянуть несколько интересных моментов, с которыми можете столкнуться по ходу дела:

  • Основная загвоздка заключается в том, что для решения задачи вам придется добавить категории и теги страницам, поскольку степень схожести двух публикаций определяется именно через них. Выбирайте модули Post Tags and Categories for Pages, Tag Pages, Add Category to Pages или любые другие.
  • При желании вы можете сделать отображение соответствующих тегов в шаблоне через the_category и the_tags.
  • Метки для всех типов записей создаются в одной и той же таблице БД, поэтому в архиве сайта они будут вперемешку.

Похожие страницы с Yet Another Related Posts

Итак, допустим, вы уже добавили теги и установили популярный плагин похожих постов Yet Another Related Posts. Его преимущество в том, что он позволяет работать не только с постами блога, но и со страницами (даже с медиафайлами). Вам лишь нужно зайти в настройки и все правильно там указать:

  1. Во-первых, определяете критерии схожести — активируете рассмотрение меток и/или рубрик. Контент я обычно не учитываю, т.к. эта фишка жрет много ресурсов.
  2. Дальше выбираете режим вывода похожих страниц в WordPress: автоматически (ставите галочку как на скриншоте) или вручную через функцию (см.ниже).
  3. Доп.опции: число элементов и шаблон (список, миниатюры, свой).

Похожие страницы

Вообще детальную инфу по настройке Yet Another Related Posts смотрите в его обзоре. Что касается отображения похожих страниц, то за это отвечает функция related_pages, и в итоге у вас в файле шаблона page.php должно быть что-то вроде:

<div class="after-post">
 <div class="h3-title">Еще интересные статьи:</div>
 <?php related_pages(); ?>
</div>

У модуля есть еще 2 функции для вывода записей: related_entries (любых типов) и related_posts (только постов). Убедитесь, что используете правильный код, если не хотите смешивать оба варианта.

Похожие страницы без плагина

Хотя метод и называется «без плагина», кое-что установить все же придется (о критериях схожести говорилось в нюансах выше). Можете выбрать любой из имеющихся вариантов либо сделать все вручную. Если это будет Post Tags and Categories for Pages, то после его установки и активации в разделе «Страницы» увидите новые пункты «Рубрики» и «Метки». Плюс при редактировании или создании новых публикаций появится блок с тегами (как в постах).

Похожие страницы без плагина

Общий алгоритм реализации метода:

1. Вначале добавляем парочку одинаковых тегов для нескольких страниц сайта (дабы в итоге мы смогли увидеть результаты).

2. Далее заходите в файл functions.php и размещаете в нем следующий код:

function wpb_related_pages() { 
$orig_post = $post;
global $post;
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag)
$tag_ids[] = $individual_tag->term_id;
$args=array(
'post_type' => 'page',
'tag__in' => $tag_ids,
'post__not_in' => array($post->ID),
'posts_per_page'=>5
);
$my_query = new WP_Query( $args );
if( $my_query->have_posts() ) {
echo '<div id="relatedpages"><h3>Related Pages</h3><ul>';
while( $my_query->have_posts() ) {
$my_query->the_post(); ?>
<li><div class="relatedthumb"><a href="<? the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_post_thumbnail('thumb'); ?></a></div>
<div class="relatedcontent">
<h3><a href="<? the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
<?php the_time('M j, Y') ?>
</div>
</li>
<? }
echo '</ul></div>';
} else { 
echo "No Related Pages Found:";
}
}
$post = $orig_post;
wp_reset_query(); 
}

метками. Здесь можете изменить значения некоторых параметров, например:

  • posts_per_page — число постов;
  • текст заголовка блока «Related Pages»;
  • фразу «No Related Pages Found», если ничего не найдено;
  • плюс HTML формат отображения также задается в этом коде.

3. Теперь чтобы вывести похожие страницы в Вордпресс, открываете файл шаблона page.php или content-page.php и в нужном месте вставляете строку:

<?php wpb_related_pages(); ?>

После всего проверьте работу функции. Дополнительно внешний вид списка можете подправить через CSS стили. За сниппет спасибо авторам этой статьи.

Итого. Какой из двух вариантов выбрать, вам решать. Первый, вроде как, намного проще, а второй подойдет любителям «не плагинных» решений, хотя в обоих случаях надо дополнительно позаботиться о добавлении тегов в страницы. Кроме того, с момента тестирования второго метода прошло некоторое время, поэтому его 100%тную работоспособность сейчас гарантировать не могу (но, по идее, WP движок за это время не сильно менялся). В любом случае, после внедрения, смотрите на результаты.

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

рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 11, средний балл: 5,09 из 7)
Загрузка...

категория Категории: Плагины; Хаки и секреты;
теги Теги: , , , .

комментария 4 к статье “Выводим похожие страницы в WordPress сайте с помощью модуля и сниппета”

  • Andrew   05.05.2018

    Все зависит от количества страниц на сайте — если у вас здоровый каталог, то полезная фишка, если там 5-10 текстов «о компании», то смысла ноль.

  • Tod   05.05.2018

    Andrew, полностью согласен.

  • Маша   19.05.2018

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

  • Ярик   17.07.2018

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

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


Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

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

Поиск:
Последние посты
Лучшее в категории
Облако тегов
Скажи свое мнение!

В чем основные плюсы Wordpress?

Посмотреть результаты

Загрузка ... Загрузка ...
Друзья проекта
Последние новости