0
我有一个每天运行的函数,我想检查帖子是否过期(基于自定义postmeta字段),如果是这样,则将帖子状态设置为草稿。我认为我有正确的原则,但是有些东西可能是错误的,而这些语法并没有使它正常工作。这是迄今为止功能:如果帖子元字段等于值,使产品帖子草稿
function make_product_draft() {
global $wpdb;
$sql = "
UPDATE $wpdb->posts
INNERJOIN $wpdb->postmeta on $wpdb->posts.ID = $wpdb->postmeta.post_id
SET $wpdb->posts.post_status = 'draft'
WHERE $wpdb->posts.post_type = 'product' AND $wpdb->posts.post_status = 'publish' AND $wpdb->postmeta.post_type = 'expired'
";
$wpdb->query($sql);
}
我想我要去的地方错的是当我这样做:$ wpdb-> posts.ID?我不确定什么是正确的语法。您的帮助是非常感谢:)
你要“INNERJOIN”拆分为“INNER JOIN”,另外,我会建议使用前缀,而不是调用的属性值$ wpdb,所以而不是$ wpdb-> posts,你可以使用{$ wpdb-> prefix}帖子等等。 – niklaz
非常感谢niklaz我会检查这一点,如果它有效,我会报告回答。谢谢 :) – user1190132