#php #wordpress
Вопрос:
В моем WordPress v5.8.1 у меня есть запрос ниже taxonomy.php
, чтобы получить список сообщений.
$args = array(
'post_type' => array('song', 'dance'),
'post_status' => 'publish',
'posts_per_page' => 10,
);
query_posts($args);
Запрос возвращает сообщения от обоих post_type
.
Я хотел бы создать меню на той же странице, где я хочу проверить, найдены ли в результатах запроса сообщения от определенного post_type
пользователя . Меню выглядит примерно так.
- В этой таксономии есть записи из песен, танцев (если найдены записи из обоих типов сообщений) или
- В этой таксономии есть записи из песни (если найдены записи только из типа песни post_type)
Попробовали ниже в цикле:
$song_count = wp_posts_count('song')->found_posts;
$dance_count = wp_posts_count('dance')->found_posts;
if ($song_count=>0 {
/** code goes here **/
}
Выше возвращено количество из всего WordPress, а не только из текущей таксономии.
Ответ №1:
Вы можете указать результат в переменной, но правильно ли я понял вопрос?
$args = array(
'post_type' => array('song', 'dance'),
// or 'post_type' => get_post_type($post->ID),
// conditions are no longer necessary
'post_status' => 'publish',
'posts_per_page' => 10,
);
$results = query_posts($args);
if($results) {
$count = 0;
$current_post_type = get_post_type($post->ID);
$current_post_type_name = get_post_type_object(get_post_type())->labels->singular_name); // ajust with 2 variables for multiple results
foreach($results as $result) {
// if request is in a single custom post
if($result->post_type == $current_post_type) {
$count ;
}
}
if($count > 0) {
echo $count . $current_post_type_name;
}
}
else {
// no results
}
Комментарии:
1. Я обновил свой вопрос. Я хотел бы создать меню на той же странице, где я хочу проверить, найдены ли в результатах запроса сообщения определенного типа post_type. Меню выглядит примерно так.
2. Вы можете изменить значение post_type на : ‘post_type’ => get_post_type($post->>ИДЕНТИФИКАТОР)