Я могу получить количество опубликованных постов в определенной категории (3), например:
<?php
$theID = 3;
$postsInCat = get_term_by('id','' . $theID . '','category');
$postsInCat = $postsInCat->count;
echo $postsInCat . " posts in this category";
?>
Но то, что мне теперь нужно сделать в отдельном утверждении, — это получить количество только что удаленных сообщений для определенной категории (3).
Заранее спасибо.
Возможно, ваше решение таково: помните, что идентификатор категории сохранен в таблице wp_terms, откуда вы можете его получить, а тип записи — ‘post’ thx
$args = array(
'posts_per_page' => -1,
'no_found_rows' => true,
'post_status' => 'trash',
'post_type' => 'post',
'category' => 3 );
$post=get_posts($args);
print_r($post);
echo "<br><br>Total Trashed :";
echo $total = ( $post ) ? count( $post ) : 0;
Вы можете сделать все это одним запросом, используя get_posts
как альтернатива
Концепт
Получить все сообщения из указанной категории со статусом сообщения trash
или же publish
Далее вам нужно разбить возвращаемый массив на два массива, один для trash
сообщения и один для publish
под ред. Используйте post_status
объект для сортировки сообщений по статусу сообщения
Теперь вы можете просто сосчитать два массива и повторить счет постов
$args = array(
'posts_per_page' => -1,
'post_status' => array( 'trash', 'publish' ),
'category' 3
);
$posts = get_posts($args);
if( $posts ) {
$trash = [];
$publish = [];
foreach ( $posts as $post ) {
if( $post->post_status == 'trash' ) {
$trash[] = $post;
}else{
$publish[] = $post;
}
}
echo 'There are ' . count($trash) . ' trashed posts </br>';
echo 'There are ' . count($publish) . ' published posts';
}
использование get_posts()
и посчитать результаты.
// Get trashed post in category 3.
$trashed_posts = get_posts( array(
'posts_per_page' => -1,
'no_found_rows' => true,
'post_status' => trash,
'cat' => 3,
) );
// If posts were found count them else set count to 0.
$trashed_count = ( $trashed_posts ) ? count( $trashed_posts ) : 0;