Files
agroexpert/partials/related-posts.php

57 lines
1.8 KiB
PHP
Raw Normal View History

2024-03-01 17:47:03 +03:00
<?php
2026-03-05 22:37:13 +03:00
// Получаем количество постов из параметра или устанавливаем по умолчанию 4
$posts_per_page = isset($args['posts_per_page']) ? intval($args['posts_per_page']) : 4;
2024-03-01 17:47:03 +03:00
$current_post_id = get_the_ID();
// Получаем категории текущего поста
$categories = get_the_category($current_post_id);
2026-03-05 22:37:13 +03:00
// Базовая настройка запроса
$query_args = array(
'post__not_in' => array($current_post_id),
'posts_per_page' => $posts_per_page,
);
2024-03-01 17:47:03 +03:00
2026-03-05 22:37:13 +03:00
if ($categories) {
// Проверяем, есть ли среди категорий поста категория с ID 21
$has_category_21 = false;
foreach ($categories as $category) {
if ($category->term_id == 21) {
$has_category_21 = true;
break;
}
}
if ($has_category_21) {
// Если есть категория 21, показываем посты из категорий 21 и 19
$query_args['cat'] = '21,19';
} else {
// Иначе используем все категории поста
$category_ids = array_map(function ($category) {
return $category->term_id;
}, $categories);
$query_args['category__in'] = $category_ids;
}
} else {
// Если категорий нет, используем категорию 19
$query_args['cat'] = 19;
}
2024-03-01 17:47:03 +03:00
2026-03-05 22:37:13 +03:00
$related_posts_query = new WP_Query($query_args);
2024-03-01 17:47:03 +03:00
2026-03-05 22:37:13 +03:00
if ($related_posts_query->have_posts()) {
2024-03-01 17:47:03 +03:00
2026-03-05 22:37:13 +03:00
echo '<div class="article-section__title">Читайте также:</div>';
echo '<div class="articles-preview">';
2024-03-01 17:47:03 +03:00
2026-03-05 22:37:13 +03:00
while ($related_posts_query->have_posts()) {
$related_posts_query->the_post();
get_template_part('content', 'post');
2024-03-01 17:47:03 +03:00
}
2026-03-05 22:37:13 +03:00
echo '</div>';
wp_reset_postdata();
2024-03-01 17:47:03 +03:00
}
?>