【发布时间】:2017-02-21 18:32:44
【问题描述】:
我正在尝试设置一个 cron 作业来删除超过 48 小时的行。我以前从未这样做过,并决定尝试制作一个 WP 计划任务。下面是我在functions.php 文件中的代码。我假设我的删除行/查询是错误的。任何帮助,将不胜感激;或者,如果有更简单的方法,我也对此持开放态度。谢谢。
add_action('init','es4u_delete_old_videos');
add_action('es4u_delete_video','es4u_delete_video_func');
function es4u_delete_video_func() {
$servername = "localhost";
$username = "username";
$password = "pass";
$dbname = "db";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
DELETE * FROM awdwp_webinar_orders WHERE start_time < DATEADD(HOUR,-48,GETDATE());
}
function es4u_delete_old_videos(){
if(!wp_next_scheduled('es4u_delete_video')) {
wp_schedule_event (time(), 'hourly', 'es4u_delete_video');
}
}
编辑:这就是我现在所拥有的,但表格仍然没有删除。有什么想法吗?
add_action('init','es4u_delete_old_videos');
add_action('es4u_delete_video','es4u_delete_video_func');
function es4u_delete_video_func() {
global $wpdb;
$sql = 'DELETE * FROM awdwp_webinar_orders WHERE start_time < DATEADD(HOUR,-48,GETDATE());';
$wpdb->query( $sql );
}
function es4u_delete_old_videos(){
if(!wp_next_scheduled('es4u_delete_video')) {
wp_schedule_event (time(), 'hourly', 'es4u_delete_video');
}
}
【问题讨论】:
-
看看这个 - wp-cron.
-
@stweb 好的,谢谢。假设我按照
wp_schedule_event()' example, I place my code withines4u_delete_video_func()` 进入do_this_hourly()。这修复了设置,但我知道我的代码显然是错误的;我不确定如何编写 delete *... 查询。
标签: php mysql wordpress function phpmyadmin