您的查询存在一些问题
$daystogo = "30";
$sql =
"UPDATE {$wpdb->posts}
SET post_status = \'draft\'
WHERE (post_type = \'post\' AND post_status = \'publish\')
AND DATEDIFF(NOW(), post_date) > %d";
$wpdb->query( $wpdb->prepare( $sql, $daystogo ) );
您不想通过将垃圾帖子声明为草稿来取消垃圾帖子,对吗?而且您确实不想让每个自动保存的版本(post\\u status=inherit)都成为草稿。因此,只选择已发布的帖子。
使用$wpdb-prepare()
对于EVERY 查询
(编辑:每个具有变量输入的查询,也就是说。不要使用prepare for没有变量输入的完全静态查询。)
使用WPDB
类变量而不是普通表名$wpdb->posts
而不是wp_posts
. 请参见Codex.
在编写查询代码之前,首先测试查询。使用类似MySQL frontend 或MySQL-Admin. 在sql查询中,有一个)
在没有人应该去的地方。