Главная Новости

Похожие страницы в Wordpress (с помощью плагина и сниппета)


Опубликовано: 23.08.2018

видео Похожие страницы в Wordpress (с помощью плагина и сниппета)

Похожие статьи WordPress без плагина

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


Плагин Related posts - похожие записи Wordpress - Констанитн Хмелев

Сегодня хочу дополнить имеющиеся публикации еще одной статьей по теме — будем учиться выводить похожие страницы в 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 . Его преимущество в том, что он позволяет работать не только с постами блога, но и со страницами (даже с медиафайлами). Вам лишь нужно зайти в настройки и все правильно там указать:

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

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

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

<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 ( ) ; }

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 ( ) ; ?>

<?php wpb_related_pages(); ?>

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

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

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

rss