Математические операции с настраиваемыми значениями полей? (обновлено)

Я пытаюсь написать функцию, выполняемую по расписанию cron в полночь каждую ночь, которая вычитает 1 из целочисленного значения настраиваемого поля. Он будет функционировать в основном как таймер обратного отсчета в течение 30 дней.

Проблема в том, что она не работает, и я ударил стену / я в тупик. Значение поля пользовательского поля wpcf-engine-days-to-go остается по умолчанию 30. Я обновил код и попытался использовать WP_Query вместо get_posts() .

  add_action( 'engineCronHook', 'engineDaysToGoCountdown' ); if( !wp_next_scheduled( 'engineCronHook' ) ) { wp_schedule_event( time(), 'daily', 'engineCronHook' ); } // Countdown function function engineDaysToGoCountdown(){ // Set the post args $args = array( 'post_type' => 'engine', 'posts_per_page' => -1, 'post_status' => 'publish' ); //Create enginePosts object $enginePosts = new WP_Query($args); if($enginePosts->have_posts()){ while ( $enginePosts->have_posts()) { $engine->the_post(); // This is the part that I'd like to rule-out $daysLeft = genesis_get_custom_field('wpcf-engine-days-to-go'); /* And this section below too. I'm not sure if the cron job isn't firing, but the database isn't updated. The form creates a post with '30' as the default value of the custom field, and when I run the cron job, it remains 30 in the database */ update_post_meta(the_id(),'wcf-engine-days-to-go',--$daysLeft); } } } 

использование здесь комплект type способ:

 add_action('init','engineCreateRecurringSchedule'); add_action('engineRecurringCronJob','engineDaysToGoUpdate'); function engineDaysToGoUpdate(){ // Arguments to get published posts with 'engine' post type. $engineDaysToGoArgs = get_posts( array ( 'post_status' => 'publish' 'posts_per_page' => -1, 'post_type' => 'engine') ); // Calling the value of custom field. $engineDaysToGo = genesis_get_custom_field('wpcf-engine-days-to-go'); settype($engineDaysToGo, "integer"); // Subtracting 1 from the value. $updatedEngineDaysToGo = $engineDaysToGo--; // Updating the value of the custom field. for each ($engineDaysToGoArgs as $key => $value) { // Inserting the updated value of the custom field. $update_post_meta($engineDaysToGoArgs, $engineDaysToGo, $updatedEngineDaysToGo,); }} function engineCreateRecurringSchedule(){ // Check to see if event is scheduled before. if(!wp_next_scheduled('engineRecurringCronJob')) //Schedule to run at midnight every night. wp_schedule_event (time(), 'daily', 'engineRecurringCronJob'); }