Вы уверены, что вам нужен WordPress? Кажется слишком сложным заставить WordPress продолжать такой процесс.
Я бы предложил просто поместить следующий оператор SQL в задание cron (например, один файл .php), а остальное будет обрабатываться самостоятельно.
DELETE FROM wp_posts WHERE post_date < DATE_SUB(NOW(), INTERVAL 30 DAY);
Here's a good rundown on using cron to automatically do these kinds of this for you
Update
Использование функции планирования WordPress мы можем обеспечить планирование на основе времени хрон типа нашего удаления пост. Это не настоящая работа cron, поскольку она удаляет наши сообщения только после того, как человек посетил сайт через 30 дней, а не через 30 дней независимо от посетителей. Тем не менее, это самое близкое, что мы получим через WordPress, и в этом случае результаты будут одинаковыми. Добавьте в файл functions.php или ваш файл плагина.
/**
* Add monthly interval to the schedules (since WP doesnt provide it from the start)
*/
add_filter('cron_schedules','cron_add_monthly');
function cron_add_monthly($schedules) {
$schedules['monthly'] = array(
'interval' => 2419200,
'display' => __('Once per month')
);
return $schedules;
}
/**
* Add the scheduling if it doesnt already exist
*/
add_action('wp','setup_schedule');
function setup_schedule() {
if (!wp_next_scheduled('monthly_pruning')) {
wp_schedule_event(time(), 'monthly', 'monthly_pruning');
}
}
/**
* Add the function that takes care of removing all rows with post_type=post that are older than 30 days
*/
add_action('monthly_pruning', 'remove_old_posts');
function remove_old_posts() {
global $wpdb;
$wpdb->query($wpdb->prepare("DELETE FROM wp_posts WHERE post_type='post' AND post_date < DATE_SUB(NOW(), INTERVAL 30 DAY);"));
}
Спасибо за ваш ответ. Да, они хотят этого на WP, и, следовательно, они не будут хранить много копий сообщений через определенный промежуток времени. Возвращаясь к моему вопросу - если я разместил это заявление в wp-сообщениях, он не удалит даже страницы? Я хочу, чтобы только сообщения (сообщения в блогах WP были точными), потому что они хотят, чтобы эти сообщения использовались в качестве своих новостей. Прошу вас, если я ошибаюсь здесь. – kalyan
Совершенно верно. Я обновил запрос с типом сообщения, а также завернул его в функцию расписания, чтобы перейти через WordPress. Обновлен ответ выше. – Valerius
Еще раз спасибо за этот код. Однако необходимо ли включать функцию расписания? Я имею в виду, что в одиночку следующий код в 'function.php' не будет делать? 'add_action ('Monthly_pruning', 'remove_old_posts'); function remove_old_posts() { глобальный $ wpdb; $ wpdb-> query ($ wpdb-> prepare ("DELETE FROM wp_posts WHERE post_type = 'post' AND post_date
kalyan