WordPress сообщения для автоматического истечения срока действия - PullRequest
1 голос
/ 12 марта 2012

Я хотел, чтобы мои сообщения 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 ]

2 голосов
/ 12 марта 2012

Для этой работы существует плагин post expirator .Вы просто должны настроить его как ваши требования.Процесс установки и другие подробности предоставляются с плагином.И его, безусловно, есть вариант конфигурации.

1 голос
/ 12 марта 2012

Вы помещаете массив ($ protcats) в строку.Попробуйте echo $sql;, и вы увидите, что в запросе не указаны идентификаторы вашей кошки, а 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')";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...