РАБОТАЮ ВО ВСЕХ ГОРОДАХ РОССИИ

ВРЕМЯ РАБОТЫ С 9:00 ДО 20:00

Как вывести похожие посты в wordpress

Ссылки на другие статьи, которые обычно располагаются внизу записи, строят логичную внутреннюю перелинковку на сайте и повышают поведенческие факторы. Читатель продолжает оставаться на вашем блоге и переходит вглубь на другие страницы.

Блок с похожими статьями обычно добавляется после статьи
— <?php the_content(); ?> или перед комментариями.

Реализовать вывод других постов можно с помощью плагинов или без них, вставляя вручную код в файлы. При этом способов существует множество, и все они есть в свободном доступе.

Так, например, в одном случае вам нужно добавить код только в файл single.php, в другом еще и в style.css, в третьем понадобится файл functions.php. Все эти файлы находятся в папке темы — wp-content/themes/ваша_тема/.

Плагины вордпресс

Для вывода записей списком есть хороший плагин WordPress Related Posts.

Также генерирует список соответствующих записей с эскизами и статистику кликов.

Скачать WordPress Related Posts https://wordpress.org/plugins/wordpress-23-related-posts-plugin/

Для вывода с картинками плагин Related Posts Thumbs.

Скачать https://wordpress.org/plugins/related-posts-thumbnails/screenshots/

Я часто слышу, что лучше не пользоваться плагинами и вставлять коды вручную в файлы. Основной причиной называют нагрузку на блог. Здесь хочу заметить, выбирайте правильного хостера и не будет проблем. Да и с каких пор, выполнение вставленного вручную скрипта не влияет на нагрузку?

Я сторонница плагинов по той причине, что когда-нибудь захочу изменить или обновить свою сегодняшнюю тему и все настройки слетят. Не говоря о том, что напрочь забуду, что и куда я дописывала. А представьте человека, которому сделали блог, потому что он ничего в этом не понимает. Одно дело нажимать на ссылки обновления движка и плагинов, другое дело искать изменения в коде.

Теперь предлагаю те коды, которыми я воспользовалась на некоторых блогах в качестве эксперимента и они показали хорошую работоспособность.

1 способ – похожие новости без плагинов — single.php и functions.php

Как вывести похожие посты в вордпресс по тегам

В файл wp-content/themes/тема/functions.php нужно вставить эту функцию:

function digatalart_tag_rel_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(
            'tag__in' => $tag_ids,
            'post__not_in' => array($post->ID),
            'showposts'=>7, // Количество выводимых похожих записей.
            'caller_get_posts'=>1
        );
        $my_query = new wp_query($args);
        if($my_query->have_posts()){
            echo '<ul id="relPost">';
            while($my_query->have_posts()){
                $my_query->the_post();
            ?>
                <li><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
            <?php
            }
            echo '</ul>';
        }
        else{
            echo '<p>Другие записи по теме отсутсвуют.</p>';
        }
        wp_reset_postdata();
    }
}

Для вызова функции похожих постов по тегам вставим в single.php после статьи:

<?php
    digatalart_tag_rel_post();
?>

В файл single.php можно вставить таким образом:

<p><h2>Похожие записи</h2> </p>    
    <?php
    digatalart_tag_rel_post();
?> 
<br />

Как вывести похожие записи в вордпресс с сортировкой по рубрике

В файл wp-content/themes/тема/functions.php нужно вставить эту функцию:

function digatalart_cat_rel_post(){
    global $post;
    $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 id="relPost">';
            while($my_query->have_posts()){
                $my_query->the_post();
            ?>
                <li><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
            <?php
            }
            echo '</ul>';
        }
        else{
            echo '<p>Другие записи по теме отсутсвуют.</p>';
        }
        wp_reset_postdata();
    }
}

Теперь для вывода похожих записей на страницах нам необходимо вызвать эту функцию, для этого откройте файл single.php из папки с установленной у Вас темой и вставьте в то место, где необходимо вывести блок с похожими записями, следующую строку.

Для вызова функции похожих постов по рубрике добавим в файл single.php этот код:

<?php
    //Вызов функции похожих записей в WordPress без плагинов (по рубрике)
    digatalart_cat_rel_post();
?>

2 способ вывода похожих записей без плагинов — single.php и style.css

Изменения вносим в файл вашей темы single.php, вставляем этот код после записи или перед комментариями:

<?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() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
 <?php
 }
 echo '</ul>';
 }
 wp_reset_query();
 }
 ?>

В этом случае мы получим вывод похожих записей по категориям. Это является оптимальным вариантом при выборе между тегами и категориями.

Выводим похожие записи с картинками без плагинов

Чтобы рядом со списком ссылок на другие статьи показывались картинки, нужно в файл single.php вставить такой код:

<div class="related_posts">
 <h3>Похожие записи:</h3>
 <?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, //Если нужен вывод по тегам, то замените на 'tag__in' => $tag_ids,
 'post__not_in' => array($post->ID),
 'showposts'=>4, // количество отображаемых постов
 'orderby'=>rand, // вывод похожих записей в случайном порядке. Если удалить ее, то будут показываться последние статьи из категории.  
'caller_get_posts'=>1);
 $my_query = new wp_query($args);
 if( $my_query->have_posts() ) {
 echo '<div>';
 while ($my_query->have_posts()) {
 $my_query->the_post();
 ?>
 <div class="related_posts_box"><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(); ?><?php the_title(); ?></a></div>
 <?php
 }
 echo '</div>';
 }
 wp_reset_query();
 }
 ?>
 </div>

Может стоять задача – генерировать вывод записей из конкретно заданных категорий.

При таком подходе будет передаваться вес целенаправленно на нужные вам статьи. Для выполнения нужно добавить этот код в файл single.php:

<div class="related_posts">
 <h3>Похожие записи:</h3>
 <?php
 $args=array(
 'category__in'=>array(3,7), // здесь через запятую указаны ID категорий, из которых будете выводить записи.
'post__not_in'=>array($post->ID),
 'showposts'=>4,
 'orderby'=>rand,
 'caller_get_posts'=>1);
 $posts = get_posts($args);
 foreach($posts as $post){
 setup_postdata($post);
 ?>
 <div class="related_posts_box"><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(); ?><?php the_title(); ?></a></div>
 <?php } wp_reset_postdata(); ?>
 </div>

Здесь мы использовали класс дива:

Это означает, что в стилях мы можем придать любой внешний вид. Для этого впишем в файл style.css следующие стили, которые вы сможете изменить под свой дизайн:

.related_posts{
 margin:15px 0;
 float: left;
 width: 100%;
 }
 .related_posts_box{
 background-color: #E8F0F2;
 min-height: 200px;
 border:1px solid #C6D2D4;
 border-radius:5px;
 float: left;
 margin: 2px;
 padding: 6px 3px;
 text-align: center;
 width: 150px;
 font-style: italic;
 }
 .related_posts_box:hover{
 background:#ffffff;
 }

Не забывайте, что для вывода картинок нужно иметь миниатюры к каждому посту.

Эта возможность находится справа от редактора и называется «Задать миниатюру». Если такой ссылки у вас нет, то пройдите в правом верхнем углу в админке вордпресс во вкладку «Экран» и поставьте галочку напротив «Миниатюра записи».
В случае, когда нет такого пунктика, напишите в файле functions.php эти строчки:

if ( function_exists( 'add_theme_support' ) )
 add_theme_support( 'post-thumbnails' );

Для автоматического создания миниатюр подходит плагин Auto Post Thumbnail – скачать https://wordpress.org/plugins/auto-post-thumbnail/

Для задания миниатюрам нужного размера добавьте в functions.php этот код:

if(function_exists('add_theme_support')){
 add_theme_support('post-thumbnails');
 set_post_thumbnail_size(200, 200);} //размер миниатюр

3 способ
Выводим похожие посты wordpress с картинками из рубрик без плагинов — singe.php и style.css

Вывод похожих статей их этой же рубрики.

Вставляем следующий код в файл вашей темы singe.php после записи – ищите в коде что-то подобное: <?php the_content(); ?>.

<div class="related_posts">
<h3>Похожие статьи</h3>
<?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, // для вывода из тегов замените на 'tag__in' => $tag_ids,
 'post__not_in' => array($post->ID),
 'showposts'=>3, // количество похожих сообщений
'orderby'=>rand,
 '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(); ?>"><div id="box-cel"><?php the_post_thumbnail(array( 150,150 )); ?><br><?php the_title(); ?></div></a></li>
<?php
}
echo '</ul>';
}
wp_reset_query();
}
?></div>

Значения, которые меняются по своему усмотрению:

‘showposts’=>3,

<?php the_post_thumbnail(array( 150,150 )); ?>

Здесь меняется размер миниатюры.

Чтобы выводить похожие записи wordpress с картинкой из тегов без плагинов, замените строку

‘category__in’ => $category_ids,

На строку

‘tag__in’ => $tag_ids,

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

В случае вывода списком можно убрать маркеры перед названием статьи. Для этого в style.css впишем:

/*** Похожие статьи ***/
.related_posts ul {margin-left:0px;
      padding-left:0px;
      list-style:none;
    }

Блочный вывод записей с картинками

Но можно в файле стилей оформить блочный вариант – каждая статья с миниатюрой будет находиться в отдельном блоке. Для этого добавим в style.css примерно такие стили:

.related_posts{
width: 580px;
height: 300px;}
.related_posts ul li{
height: 205px;
border: 1px solid #C3B17F;
border-radius: 3px;
float: left;
list-style: none;
margin: 1px;
padding: 15px;
text-align: center;
width: 158px;
overflow: hidden;}
.related_posts ul li:hover {
background:#F9E9C2;
border: 1px dashed #39B6F9;
}

Все эти варианты кодов я нашла в открытом доступе и использовала на разных блогах. Решила собрать все их на одной странице, чтобы в будущем сама же и могла их найти достаточно легко. Надеюсь, что не мне одной пригодится эта шпаргалка.



* Нажимая на кнопку "Отправить" я соглашаюсь с политикой конфиденциальности

Создание сайта

Сделать веб-сайт по приемлемым ценамЗаказать создание сайта под ключ. Цена: недорого.

]]>eTXT]]>

Сервис анализа и проверки траста xt сайтов в Яндексе