Как автоматически отображать посты по тегам в WordPress с примерами кода

Отображение записей по тегам — частая задача при разработке сайтов на WordPress. Особенно когда нужно динамически выводить связанные материалы, чтобы улучшить навигацию и удерживать пользователей на сайте. В этой статье разберём, как автоматически выводить посты по определённым тегам с помощью WP_Query, создавать шорткоды и использовать AJAX для динамического обновления контента без перезагрузки страницы.

Почему важно автоматически отображать записи по тегам

Теги помогают структурировать контент и облегчают поиск похожих материалов. Ручное добавление блоков с постами по тегам неудобно и не масштабируется. Автоматизация решения позволяет:

  • Динамически выводить актуальные записи с нужными тегами
  • Улучшить SEO за счёт внутренней перелинковки
  • Повысить время пребывания пользователей на сайте

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

Использование WP_Query для вывода постов по тегам

Основной инструмент для выборки записей в WordPress — класс WP_Query. Чтобы получить посты по тегу, достаточно сформировать правильный запрос:

function wprobot_get_posts_by_tag($tag_slug, $posts_per_page = 5) {
    $args = array(
        'tag' => $tag_slug,
        'posts_per_page' => $posts_per_page,
        'post_status' => 'publish',
        'ignore_sticky_posts' => true
    );
    $query = new WP_Query($args);
    if ($query->have_posts()) {
        echo '<ul class="wprobot-posts-by-tag">';
        while ($query->have_posts()) {
            $query->the_post();
            echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
        }
        echo '</ul>';
        wp_reset_postdata();
    } else {
        echo '<p>Посты с тегом «' . esc_html($tag_slug) . '» не найдены.</p>';
    }
}

Этот код можно использовать в шаблонах темы, чтобы вывести посты по нужному тегу. Например, для тега wordpress вызов будет wprobot_get_posts_by_tag('wordpress');.

Создание шорткода для вывода постов по тегам

Чтобы редакторы контента могли вставлять списки постов по тегам в записи и страницы, создадим шорткод:

function wprobot_shortcode_posts_by_tag($atts) {
    $atts = shortcode_atts(array(
        'tag' => '',
        'count' => 5
    ), $atts, 'posts_by_tag');
    ob_start();
    if (!empty($atts['tag'])) {
        wprobot_get_posts_by_tag(sanitize_text_field($atts['tag']), intval($atts['count']));
    } else {
        echo '<p>Укажите тег для вывода постов.</p>';
    }
    return ob_get_clean();
}
add_shortcode('posts_by_tag', 'wprobot_shortcode_posts_by_tag');

Теперь в редакторе можно написать [posts_by_tag tag="wordpress" count="3"], и появится список из трёх постов с тегом «wordpress».

Динамический вывод постов по тегам через AJAX

Иногда нужно менять список постов по тегам без перезагрузки страницы, например, при выборе тега из выпадающего списка. Реализуем AJAX-запрос для этого.

Регистрация AJAX обработчика в functions.php

add_action('wp_ajax_wprobot_get_posts_by_tag', 'wprobot_ajax_get_posts_by_tag');
add_action('wp_ajax_nopriv_wprobot_get_posts_by_tag', 'wprobot_ajax_get_posts_by_tag');

function wprobot_ajax_get_posts_by_tag() {
    $tag = isset($_POST['tag']) ? sanitize_text_field($_POST['tag']) : '';
    if (!$tag) {
        wp_send_json_error('Тег не передан');
    }
    ob_start();
    wprobot_get_posts_by_tag($tag, 5);
    $html = ob_get_clean();
    wp_send_json_success($html);
}

JavaScript для вызова AJAX и отображения результатов

Подключаем скрипт, например в footer.php или через wp_enqueue_script, и добавим HTML для выбора тега:

<select id="wprobot-tag-select">
  <option value="wordpress">WordPress</option>
  <option value="plugin">Плагины</option>
  <option value="theme">Темы</option>
</select>
<div id="wprobot-posts-container"></div>

<script>
  (function($){
    $('#wprobot-tag-select').on('change', function() {
      var tag = $(this).val();
      $.ajax({
        url: '<?php echo admin_url('admin-ajax.php'); ?>',
        method: 'POST',
        data: {
          action: 'wprobot_get_posts_by_tag',
          tag: tag
        },
        success: function(response) {
          if(response.success) {
            $('#wprobot-posts-container').html(response.data);
          } else {
            $('#wprobot-posts-container').html('<p>Ошибка загрузки постов</p>');
          }
        },
        error: function() {
          $('#wprobot-posts-container').html('<p>Ошибка запроса</p>');
        }
      });
    });
    // Инициируем первый запрос
    $('#wprobot-tag-select').trigger('change');
  })(jQuery);
</script>

Так пользователь сможет выбирать тег, а список постов будет обновляться без перезагрузки страницы.

Использование плагинов для автоматического вывода постов по тегам

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

  • Related Posts Thumbnails — выводит похожие записи по тегам или категориям с миниатюрами.
  • Contextual Related Posts — гибкие настройки, вывод похожих постов, поддержка шорткодов и виджетов.
  • WP Remark — плагин с возможностями персонализации и автоматизации вывода релевантного контента, доступен на wpshop.ru.

Выбор зависит от задач и требований к дизайну и функционалу.

Советы по оптимизации и безопасности

При автоматическом выводе постов по тегам важно учитывать производительность и безопасность:

  • Кешируйте результаты запросов, чтобы снизить нагрузку на базу данных. Можно использовать Transients API.
  • Обязательно фильтруйте входящие данные через sanitize_text_field или аналогичные функции.
  • Учитывайте количество выводимых записей — слишком большой вывод замедлит страницу.
  • Используйте ignore_sticky_posts, чтобы не дублировать закреплённые записи.
  • Проверяйте, что тег существует, прежде чем делать запрос.

Заключение

Автоматический вывод постов по тегам — мощный инструмент для улучшения структуры сайта и взаимодействия с пользователями. Используя WP_Query, шорткоды и AJAX, можно создать гибкое и удобное решение без излишней нагрузки. При необходимости дополнить функционал можно плагинами, такими как WP Remark с wpshop.ru. Главное — продуманность и безопасность кода.

Как автоматически удалять старые медиафайлы в WordPress
24.03.2026
WooCommerce: автоматическое изменение стоимости и наличия товаров через Webhook с подробным примером
13.06.2026
Как автоматически оптимизировать базу данных WordPress
06.02.2026
Как автоматически сохранять данные пользователя в WordPress без плагинов
14.03.2026
Автоматическое создание и отправка отзывов в WordPress с помощью WP Robot
13.01.2026