wordpress帖子自动过期

时间:2012-03-12 00:55:32

标签: wordpress function

我希望我的wordpress帖子在15天后自动过期(转为草稿),但也要保护某些类别的帖子。我正在阅读有关此主题的一些主题,并将以下代码添加到我的主题函数中,但它不起作用。我在这做错了什么?请帮忙!

function expire_posts() {
global $wpdb;
$daystogo = "15";
$protcats = array( 9,10 );
$sql = "UPDATE wp_posts SET `post_status` = 'draft' WHERE `post_type` = 'post' AND `post_category` != '$protcats' AND DATEDIFF(NOW(), `post_date`) > '$daystogo')";
$wpdb->query($sql);
}

add_action('wp_head', 'expire_posts');

2 个答案:

答案 0 :(得分:2)

有一个post expirator插件可以完成这项工作。您只需将其配置为您的要求即可。插件提供了安装过程和其他详细信息。它肯定有会议选择。

答案 1 :(得分:1)

你将一个数组($ protcats)放在一个字符串中 试试echo $sql;,您会发现它不会将您的猫ID放在查询中,而是array
试试这个:

$protcats = array( 9,10 );

$excludeCats = '';
foreach($protcats as $cat){
    $excludeCats .= " AND `post_category` != '$cat' "; //add each category to it's own exclude
}
$sql = "UPDATE wp_posts SET `post_status` = 'draft' WHERE `post_type` = 'post' ". $excludeCats ." AND DATEDIFF(NOW(), `post_date`) > '$daystogo')";