$args = array( 'cat' => 5, 'posts_per_page' => 10 ); $query = new WP_Query($args);
После создания запроса, используйте цикл while для отображения постов. Это делает код более модульным и понятным. Не забудьте завершить цикл, чтобы избежать лишних запросов:
if ($query->have_posts()) { while ($query->have_posts()) { $query->the_post(); the_title('', '
'); // Заголовок поста the_excerpt(); // Краткое содержание } wp_reset_postdata(); // Восстановление глобальной переменной $post }
Как определить ID категории в WordPress
Перейдите в панель управления WordPress и выберите раздел «Записи», затем откройте «Категории». Найдите нужную категорию в списке. При наведении на название категории, в строке состояния вашего браузера появится URL. В этом URL вы увидите параметр «tag_ID», за которым следует число; это и есть ID категории.
Альтернативный способ – открыть категорию для редактирования. В адресной строке также будет указано значение параметра «tag_ID». Его можно скопировать для дальнейшего использования.
Кроме того, используйте специальный плагин для администрирования, который отображает ID категорий на странице категорий, что упрощает процесс поиска.
Чтобы вывести посты из конкретной категории в шаблоне WordPress, используйте следующий код внутри файла шаблона, например, в `index.php` или `category.php` вашего активного шаблона:
<?php
$category_id = get_cat_ID('Имя категории'); // Замените 'Имя категории' на нужное название
$args = array(
'cat' => $category_id,
'posts_per_page' => 10, // Количество постов для отображения
);
$posts = new WP_Query($args);
if ($posts->have_posts()) {
while ($posts->have_posts()) {
$posts->the_post();
?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<p><?php the_excerpt(); ?></p>
<?php
}
}
wp_reset_postdata();
?>
Здесь мы сначала получаем ID категории с помощью функции get_cat_ID()
. Затем создаём новый экземпляр WP_Query
, передавая параметры для поиска постов. Внутри цикла while
отображаем заголовок и краткий текст каждого поста. Не забудьте вернуть состояние глобального объекта поста с помощью wp_reset_postdata()
.
Этот код прост в использовании и легко модифицируется под ваши нужды. Например, измените значение 'posts_per_page'
, чтобы отобразить другое количество постов. Также можно добавлять дополнительные параметры для сортировки или фильтрации результатов.
Использование WP_Query для кастомного запроса постов
Пример кода:
$args = array( 'category_name' => 'ваша-категория', 'posts_per_page' => 10, ); $query = new WP_Query( $args );
В этом примере вы запрашиваете 10 постов из категории «ваша-категория». Настройте параметр ‘posts_per_page’ в соответствии с вашими нуждами. Если хотите получить все посты, можете использовать значение -1.
if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); the_title('', '
'); the_content(); } } else { echo 'Посты не найдены.'; } wp_reset_postdata();
Вы можете добавить другие параметры в массив $args для большей настройки. Например, параметр ‘order’ позволяет задать порядок сортировки постов. С помощью ‘orderby’ вы можете указать, по какому критерию осуществлять сортировку, например по дате или названию.
$args = array( 'category_name' => 'ваша-категория', 'posts_per_page' => 10, 'orderby' => 'date', 'order' => 'DESC', );
Используйте аргументы параметра query_posts
или WP_Query
для ограничения выборки постов по дате и количеству. Это позволяет контролировать отображаемый контент.
Для фильтрации по дате добавьте параметры date_query
. Например, если необходимо вывести посты за последние 30 дней:
$args = array(
'category_name' => 'ваша-категория',
'date_query' => array(
array(
'after' => '30 days ago',
),
),
);
$query = new WP_Query($args);
Этот код извлекает только те посты, которые были опубликованы в течение последнего месяца.
Чтобы ограничить количество постов, используйте параметр posts_per_page
. Например, чтобы вывести не более 5 записей:
$args['posts_per_page'] = 5;
В результате комбинируйте оба параметра:
$args = array(
'category_name' => 'ваша-категория',
'posts_per_page' => 5,
'date_query' => array(
array(
'after' => '30 days ago',
),
),
);
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
echo '' . get_the_title() . '
';
echo '' . get_the_excerpt() . '
';
}
} else {
echo 'Нет записей для отображения.';
}
wp_reset_postdata();
Используйте CSS для создания уникального вида ваших постов. Начните с определения базовых стилей для контейнеров, чтобы задать отступы и границы. Например, используйте селектор для постов и задайте параметры, такие как margin
и padding
для улучшения визуального восприятия:
.post {
margin: 20px;
padding: 15px;
border: 1px solid #ddd;
border-radius: 5px;
}
Цвет фона и шрифта могут улучшить читабельность. Настраивайте их с помощью свойств background-color
и color
:
.post {
background-color: #f9f9f9;
color: #333;
}
Каждый элемент поста следует визуально выделить. Используйте заголовки, чтобы они выделялись на фоне текста. Примените стили к заголовкам:
.post h2 {
color: #0073aa;
font-size: 1.5em;
margin-bottom: 10px;
}
Добавьте стили к ссылкам, чтобы они привлекали внимание. Установка нижнего подчеркивания и изменение цвета при наведении будут полезны:
.post a {
color: #0073aa;
text-decoration: none;
}
.post a:hover {
text-decoration: underline;
color: #005177;
}
Для изображений в постах увеличьте их масштаб при наведении, чтобы добавить интерактивности. Это можно сделать с помощью трансформации:
.post img {
width: 100%;
transition: transform 0.3s ease;
}
.post img:hover {
transform: scale(1.05);
}
Создайте более выразительный вид, добавив тень к контейнерам постов. Это сделает их более объемными:
.post {
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
И, наконец, не забывайте адаптировать стили для мобильных устройств. Используйте медиа-запросы для оптимизации отображения на разных экранах:
@media (max-width: 768px) {
.post {
margin: 10px;
padding: 10px;
}
}
Настройка пагинации для списка постов из категории
Для настройки пагинации в WordPress используйте функцию paginate_links()
. Эта функция позволяет отображать ссылки на страницы с постами выбранной категории. Чтобы включить пагинацию, следуйте этим шагам:
- Откройте файл с шаблоном страницы, где вы хотите вывести посты, например,
category.php
.
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'category_name' => 'ваша_категория', // Название категории
'paged' => $paged,
);
$query = new WP_Query($args);
if ($query->have_posts()) :
while ($query->have_posts()) : $query->the_post();
endwhile;
// Пагинация
$big = 999999999; // уникальное число
$pagination_args = array(
'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
'format' => '?paged=%#%',
'current' => max(1, get_query_var('paged')),
'total' => $query->max_num_pages,
);
echo paginate_links($pagination_args);
endif;
wp_reset_postdata();
?>
В этом коде вы создаете новый объект WP_Query
с параметрами для категории и текущей страницы. Затем устанавливаете аргументы пагинации, чтобы правильно сформировать ссылки на страницы. Не забудьте заменить 'ваша_категория'
на название вашей категории.
После применения кода будет доступна пагинация для списка постов. Пользователи смогут удобно перемещаться между страницами, что улучшит опыт взаимодействия с сайтом.
Работа с виджетами для отображения постов из категории
Используйте стандартные виджеты WordPress для отображения постов из определенной категории. Перейдите в раздел Внешний вид > Виджеты в админке и выберите нужный сайдбар. Найдите виджет Последние записи или Произвольный HTML.
Если хотите настроить виджет Последние записи, добавьте его в нужный сайдбар. В настройках выберите категорию, посты из которой хотите отображать. Укажите максимальное количество записей и настройте заголовок виджета. Это обеспечит удобный доступ к контенту для ваших читателей.
Для более гибкого подхода применяйте виджет Произвольный HTML. С помощью простого кода вы можете вывести посты из заданной категории. Используйте следующий PHP-код:
<?php $category_posts = new WP_Query(array( 'category_name' => 'название-категории', 'posts_per_page' => 5 )); if ( $category_posts->have_posts() ) { while ( $category_posts->have_posts() ) { $category_posts->the_post(); echo '<a href="' . get_permalink() . '">' . get_the_title() . '</a><br />'; } } wp_reset_postdata(); ?>
Поместите этот код в виджет Произвольный HTML. Замените название-категории на нужное вам значение, чтобы отобразить посты избранной категории.
При помощи плагинов можно улучшить функциональность. Плагины, такие как Category Posts Widget или WP Recent Posts, предоставляют дополнительные настройки и возможности, такие как выбор стилей отображения или фильтрация постов по дате.
Регулярно обновляйте виджеты, чтобы поддерживать интерес пользователей. Убедитесь, что контент актуален и соответствует вашим целям. Это повысит вовлеченность читателей и улучшит восприятие сайта.
[display-posts category="имя_категории"]
Замените «имя_категории» на нужное название. Вы также можете добавлять параметры, например, чтобы ограничить количество постов:
[display-posts category="имя_категории" posts_per_page="5"]
Для более сложных задач рассмотрите использование Ajax Load More. Он помогает загружать посты без перезагрузки страницы, создавая динамичный пользовательский интерфейс. Этот плагин требует базовых знаний настройки, но результаты стоят усилий.
Если вам нужна простота и стабильность, попробуйте Simple Recent Post Widget. Этот плагин добавляет виджет в боковую панель сайта и позволяет выбирать категорию для отображения недавних постов. Просто перетащите виджет в нужное место, выберите категорию и сохраните настройки.