Как сделать отдельный раздел для особой категории постов на целевой странице?

Вопрос или проблема

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

Это возможно в WordPress?

Это возможно, вам нужно будет создать другой цикл для этой специальной категории, используя класс WP_Query. Пример цикла, возвращающего категорию “cats”:

// Аргументы WP_Query
$args = array (
    'category_name'          => 'cats',
);

// Запрос
$query = new WP_Query( $args );

// Цикл
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // выполнить что-то
    }
} else {
    // посты не найдены
}

// Восстановить оригинальные данные поста
wp_reset_postdata();

В зависимости от количества секций на вашей главной странице у вас будет несколько циклов, но не забудьте сбросить каждый цикл на странице.

Да, это определенно возможно. Вам в основном нужно объединить несколько циклов с пользовательскими запросами цикла, более подробную информацию можно найти здесь: The Loop

 <?php $query = new WP_Query( 'cat=ИД КАТЕГОРИИ, КОТОРУЮ ВЫ ХОТИТЕ ОТОБРАЗИТЬ ЗДЕСЬ' ); ?>
 <?php if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?>

    ВЫВОД HTML ЗДЕСЬ

 <?php endwhile; endif; ?>

 <?php rewind_posts(); ?>

<?php $query = new WP_Query( 'cat=ИД 2-Й КАТЕГОРИИ, КОТОРУЮ ВЫ ХОТИТЕ ОТОБРАЗИТЬ ЗДЕСЬ' ); ?>
<?php if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?>

    ВЫВОД HTML ЗДЕСЬ

 <?php endwhile; endif; ?>

Помните метод rewind_posts(), чтобы это работало правильно.

Я увидел ваш комментарий к другому ответу “вау, я не так увлечен программированием или кодированием”, поэтому решил предложить еще один вариант.

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

Например, в Divi есть модуль, который позволяет это делать, он выглядит как на скриншоте ниже.

введите описание изображения здесь

Ответ или решение

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

1. Использование WP_Query для создания пользовательского цикла

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

<?php
// Аргументы WP_Query
$args = array(
    'category_name' => 'cats', // Замените 'cats' на ваш slug категории
    'posts_per_page' => 5, // Количество постов для отображения
);

// Запрос
$query = new WP_Query($args);

// Проверка наличия постов
if ($query->have_posts()) {
    echo '<div class="special-category-section">';
    echo '<h2>Выбранная категория</h2>'; // Заголовок секции
    while ($query->have_posts()) {
        $query->the_post();

        // Вывод информации о посте
        echo '<h3>' . get_the_title() . '</h3>';
        echo '<p>' . get_the_excerpt() . '</p>';
    }
    echo '</div>';
} else {
    echo '<p>Посты не найдены.</p>';
}

// Восстановление исходных данных поста
wp_reset_postdata();
?>

2. Структура главной страницы

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

3. Несколько циклов для разных категорий

Если вы хотите добавить несколько секций для разных категорий, повторите процесс с помощью дополнительных циклов. Пример:

// Секция для первой категории
$args1 = array('category_name' => 'cats');
$query1 = new WP_Query($args1);

// Секция для второй категории
$args2 = array('category_name' => 'dogs');
$query2 = new WP_Query($args2);

// Первый цикл
if ($query1->have_posts()) {
    echo '<div class="category-section">';
    echo '<h2>Коты</h2>';
    while ($query1->have_posts()) {
        $query1->the_post();
        // Вывод постов
    }
    echo '</div>';
}

// Второй цикл
if ($query2->have_posts()) {
    echo '<div class="category-section">';
    echo '<h2>Собаки</h2>';  
    while ($query2->have_posts()) {
        $query2->the_post();
        // Вывод постов
    }
    echo '</div>';
}

// Восстановление исходных данных
wp_reset_postdata();

4. Использование плагинов и визуальных конструкторов

Если вы не хотите погружаться в код, существует множество плагинов и визуальных конструкторов, таких как Elementor или Divi, которые позволяют создавать разделы с постами по категориям без необходимости программирования. Эти инструменты обычно включают модули, которые позволяют настраивать отображение постов в зависимости от выбранных категорий:

  • Elementor: модуль "Posts" с фильтрацией по категориям.
  • Divi: модуль для отображения постов с возможностью выбора категорий.

5. Окончательные шаги и рекомендации

  • SEO-оптимизация: Убедитесь, что заголовки и содержание, которые вы выводите на главной странице, оптимизированы для поисковых систем.
  • Проверка работоспособности: После внесения изменений проверьте, что все работает корректно, и посты отображаются как ожидалось.
  • Обновление кэша: Если у вас установлен плагин кэширования, не забудьте его очистить после внесения изменений.

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

Оцените материал
Добавить комментарий

Капча загружается...