Счетчик когда-либо опубликованных сообщений - даже удаленных


Я пытаюсь понять, как я могу отобразить количество когда-либо опубликованных сообщений - не только опубликованных в настоящее время, черновиков + ожидающих и т. Д., Но Даже удаленных.

Я предполагаю, что должен быть создан какой-то счетчик, который каждый раз, когда публикуется сообщение, увеличивается на единицу.

Есть идеи?

P.S. Я говорю о пользовательском типе сообщения

Author: Jim, 2015-08-30

2 answers

В зависимости от ваших потребностей, запрос WP может не работать для этого, так как он не будет включать сообщения, которые были удалены после очистки корзины. Это должно сработать (но не было протестировано):

function wpse_custom_post_type_counter() {
     $number = get_option( 'wpse_custom_counter' ) ? absint( get_option( 'wpse_custom_counter' )  ): 0;
     $number++;
     update_option( 'wpse_custom_counter', $number );
}
add_action( 'publish_your_custom_post_type', 'wpse_custom_post_type_counter' );

Вам нужно будет обновить имена функций и опций в соответствии с вашим приложением. Также пуля для вашего пользовательского типа записи должна заменить your_custom_post_type в вызове add_action.

Одним из недостатков этого подхода является то, что он будет работать только в будущем, он не сможет подсчитывать существующие сообщений.

Надеюсь, это поможет!

 1
Author: Matt Shaw, 2015-08-31 03:11:26

Предполагая, что вы не очищаете корзину от удаленных сообщений, вы можете сделать это с помощью простого wp_query.

<?php
$args = array (
    'post_type'       => array( 'your-custom-post-type' ),
    'post_status'     => array( 'publish', 'trash' ),
    'posts_per_page'  => -1
);
$query = new WP_Query( $args );
$total = count($query->posts);
?>
<h1>My total: <?php echo $total; ?></h1>

Возможно, вам потребуется дополнить запрос в зависимости от интересующих вас статусов: https://codex.wordpress.org/Post_Status

 0
Author: Will, 2015-08-30 20:36:51