У меня есть эта переменная с 5 категориями:
$category_needed = implode( ', ', $category_needed );
Вывод:
arts-entertainment, learning, news, real-estate, uncategorized
Теперь я хочу получить только 1 последний пост из вышеуказанных категорий.
Таким образом, общее количество сообщений будет 5 ОТ 5 последних сообщений из 5 категорий.
Для этого ниже указан мой код:
$category_needed = implode( ', ', $category_needed );
$post_args = [
'post_type' => 'post',
'numberposts' => 5,
'category' => [ $category_needed ]
];
Но я вижу, что у меня есть 2 поста такой же категории, которые я не делаю хотеть.
Есть ли работа по поиску?
Обновление:
<code>echo '<pre>';
print_r( $category_needed );
echo '
';
Возврат:
<code>Array
(
[0] => 4
[1] => 6
[2] => 2
[3] => 5
[4] => 1
)
$latest_posts = array();
foreach ( $category_needed as $cat_id ){ // $category_ids is array of category ids
$post_args = array(
'post_type' => 'post',
'numberposts' => 1,
'category' => $cat_id,
);
$latest_post_of_category = get_posts( $post_args );
$latest_posts[] = $latest_post_of_category[0];
}
foreach ( $latest_posts as $latest_post ) {
$cat = get_the_category( $latest_post->ID);
echo '<pre>';
print_r( $cat[0]->name );
echo '
'; }
Теперь возвращается:
Искусство и развлечения
Обучение
Обучение
Недвижимость
Недвижимость
Это должна быть уникальная категория, верно?