Site icon GRAVITSAPA.INFO

Делаем простейший вывод похожих/рекомендуемых записей для WordPress без плагинов

Сразу же приступим, всего 2 пункта:

  1. В файле шаблона WordPress, где выводиться “одна запись” (обычно single.php), под <?php the_content(); ?> или что-то похожее вставляем этот код:
    <h3>Рекомендуемые статьи</h3>
    <div class="recommend">
    <?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'=>4, //количество выводимых ячеек
    'orderby'=>'rand', // в случайном порядке
    'ignore_sticky_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 class="imgrel" href="<?php the_permalink() ?>"><img alt="<?php the_title(); ?>" src="<?php echo catch_that_image(); ?>" /></a><a class="urlrel" href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>
    <?php
    }
    echo '</ul>';
    }
    wp_reset_query();
    }
    ?>
    </div>
  2. Но если в записи нет ни одного изображения, то нам надо подставить какую-то картинку-заглушку. Для этого в файле functions.php вставляем этот код (ссылку на изображение вставляем свою):
    function catch_that_image() {
    global $post, $posts;
    $first_img = '';
    ob_start();
    ob_end_clean();
    $output = preg_match_all('/<img.+src=['"]([^'"]+)['"].*>/i', $post->post_content, $matches);
    $first_img = $matches [1] [0];
    if(empty($first_img)) {
    $first_img = "https://exemple.com/zaglushka.png"; // Ссылка на изображение-заглушку, если в посте оно не найдено
    }
    return $first_img;
    }

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

Пишите комменты, делитесь статьёй в соц. сетях 😉

Exit mobile version