Мы много говорили про похожие записи WordPress, но я ни разу не говорил про похожие страницы на Вашем ресурсе. Сегодняшняя публикация будет посвящена именно этому вопросу, которая будет касаться именно страниц. Потому что некоторые пользователи, может захотят организовать перелинковку и между страницами, а не только записями. Данную проблему можно будет решить при помощи плагина или же файла functions.php.
Похожие страницы при помощи Yet Another Related Posts
Для этих целей можно использовать плагин Yet Another Related Posts. Он хорош тем, что Вы можете работать как с записями, так и со страницами и даже медиафайлами. Вам необходимо будет зайти просто в настройки плагина и включить его использование на страницах.
Похожие страницы WordPress без использования плагина
Этот метод не совсем так называется, потому что Вам все равно придется установить определенный модуль для решения этой проблемы. Это связано с тем, что посты в WordPress по похожести можно определить из категории или тегов, а у страниц такой возможности нет, поэтому скачиваем плагин
Теперь Вам придется задавать для страниц метки и категории, чтобы можно их было разделять по похожести. Далее открываем файл 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();
}
Данная функция находит в базе данных страницы, которые имеют одинаковые метки. Вы можете немного изменить данную функцию, перевести некоторые словосочетания и так далее. Далее, для того чтобы вывести список похожих страниц, открываем файл page.php или же content-page.php и добавляем в нужное место код:
<?php wpb_related_pages(); ?>
После этого сохраняем все файлы, заменяем их на сервере и проверяем. Не забывайте перед тем, как выполнять все эти действия, делать резервные копии файлов, которые редактируете или же всего сайта.
Также советуем почитать на PressDev.RU
Короткая ссылка: http://pressdev.ru/?p=6033