Вопрос или проблема
Я хотел бы иметь отдельный раздел для определенной категории постов, отображаемых на главной странице моего сайта 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.