Сравните предыдущее количество сообщений с новым

Я хочу сравнить два значения, предыдущее количество сообщений (включая posts и cpt и когда обнаружено увеличение количества сообщений, он должен установить элемент div на display: block.

Я придумал следующий код:

$args = array(
 'public' => true,
 '_builtin' => false
);

$post_types = array( 'post', 'roosters', 'downloads', 'reglements', 'alv' );

foreach ( $post_types as $post_type ) {

 echo '<span>' . $post_type . '</span>';

 $postCountTotal = wp_count_posts($post_type)->publish;
 echo 'Total Posts: ' . $postCountTotal;
 echo '';


 if ( $postCountTotal > $previous ) {
 echo 'New post detected';
 } 

 $previous = 0;
}

Над кодом теперь будет напечатан над эхом. Таким образом, он вернет список post types, которые определены в верхней части кода, и добавьте после него общее количество сообщений из этого post type.

Я думаю, что я должен сравнить значения, как показано выше. Сначала вы должны сохранить предыдущее количество сообщений или сбросить инкремент. Затем сравните значение с новым. Как вы можете видеть, я сделал условие - if statement - сравнить предыдущее значение с новым. Только теперь для каждого post type он возвращает эхо "New post detected", также если новых сообщений не обнаружено.

Короче, сравните предыдущее значение с новым. Если обнаружено увеличение суммы, установите display: block элемента div display: block течение двух дней, например.

Я смотрю на ваш ответ!

1 ответ

Вам нужно использовать базу данных, чтобы иметь возможность сравнивать значения из одного запуска с другим сценарием, пожалуйста, проверьте строковые комментарии

$args = array(
 'public' => true,
 '_builtin' => false
);

$post_types = array( 'post', 'roosters', 'downloads', 'reglements', 'alv' );

foreach ( $post_types as $post_type ) {

 echo '<span>' . $post_type . '</span>';

 $postCountTotal = wp_count_posts($post_type)->publish;
 echo 'Total Posts: ' . $postCountTotal;
 echo '';

 //first we read the previous post count value from the databse so we can compare the old value with the new one EDIT: use 0 as the default value if no data in database -first run
 $previous = get_option( 'postContTotal', 0 );
 if ( $postCountTotal > $previous ) {
 echo 'New post detected';
 //if the number of posts increased then save this new value for future compares
 update_option( 'postContTotal', $postCountTotal );
 } 
}

дополнительная информация о параметрах WordPress api.

licensed under cc by-sa 3.0 with attribution.