Настройка: у меня есть собственный тип сообщения («место») с метаполем «выделение» (DateTime), которое указывает время истечения срока действия функции выделения.
Цель : По истечении времени выделения (срок действия 'place',
'posts_per_page' => -1,
);
$listings = get_posts( $args );
foreach($listings as $post) : setup_postdata($post);
$today = date( 'Ymd' );
$expire = get_post_meta($post->ID, 'highlight', true);
$today = new DateTime();
$expire_date = new DateTime($expire);
//convert dates to seconds for easier comparison
$expire_secs = $expire_date->format('U');
$today_secs = $today->format('U');
if ( $expire_secs < $today_secs ) :
update_post_meta($post->ID, 'highlight', '' );
endif;
endforeach;
}
add_action( 'jj_feaurecheck_cron', 'jj_feaurecheck_cron_function' );
function dg_cron_schedule_check_posts() {
$timestamp = wp_next_scheduled( 'jj_feaurecheck_cron' );
if ( $timestamp == false ) {
wp_schedule_event( time(), 'every_minute', 'jj_feaurecheck_cron' );
}
}
add_action( 'init', 'dg_cron_schedule_check_posts' );
[/code]
Добавил это в функции темы.php
[*]проверил часть кода «дата» на реальном сайте и это работает $expire_secs < $today_secs и т. д...
проверено с помощью элемента управления WP Cron, и cron запускается... но сообщения не обновляются..
Подробнее здесь: https://stackoverflow.com/questions/787 ... -post-meta