Я хочу, чтобы задание cron удаляло все сообщения старше даты в произвольном поле сообщения. У меня есть следующая функция в моем functions.php. Имя моего пользовательского поля - bewerbungs_frist
.
function foobar_truncate_posts(){
global $wpdb;
$currenttime = new DateTime();
$currenttime_string = $currenttime->format('Ymd');
# Set your threshold of max posts and post_type name
$post_type = 'job';
# Query post type
$query = "
SELECT ID FROM $wpdb->posts
WHERE post_type = '$post_type'
AND post_status = 'publish'
ORDER BY post_modified DESC
";
$results = $wpdb->get_results($query);
# Check if there are any results
if(count($results)){
foreach($results as $post){
$customfield = get_field('bewerbungs_frist', $post->ID);
$customfield_object = new DateTime($customfield);
$customfield_string = $customfield_object->format('Ymd');
if ( $customfield_string < $currenttime_string ) {
echo "The value of the custom date field is in the past";
echo $customfield_string;
$purge = wp_delete_post($post->ID);
}
}
}
}
foobar_truncate_posts();
Я использую плагин для обработки моих cronjobs. Имя Hock: foobar_truncate_posts
и аргументы []
Cronjob работает, но не удаляет сообщения с датой пользовательского поля старше сегодняшней даты. Две переменные одинаковы.
$currenttime_string
20130820
$customfield_string
20130820