php Wordpress - 添加过期帖子状态和Cron任务以在X天后过期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php Wordpress - 添加过期帖子状态和Cron任务以在X天后过期相关的知识,希望对你有一定的参考价值。
<?php
// Register Expired Post Status //
function register_expired() {
register_post_status( 'expired', array(
'label' => _x( 'Expired', 'post' ),
'label_count' => _n_noop( 'Expired Post <span class="count">(%s)</span>', 'Expired <span class="count">(%s)</span>' ),
'show_in_admin_status_list' => true
));
}
add_action( 'init', 'register_expired' );
// Schedule Daily Cronjob //
function daily_cron_activation() {
if ( !wp_next_scheduled( 'daily_cron' ) ) {
wp_schedule_event( current_time( 'timestamp' ), 'twicedaily', 'daily_cron' );
}
}
add_action( 'wp', 'daily_cron_activation' );
// Expiry Posts that are older than (30) days //
function expire_posts() {
$query = new WP_Query( array(
'post_type' => 'post',
'posts_per_page' => -1
));
if ( $query -> have_posts() ) {
while ( $query -> have_posts() ) {
$query -> the_post();
// Amount of time to wait until expiry //
$time = '-30 days';
if ( strtotime( get_the_date() ) <= strtotime( date( 'F j, Y' ) . $time ) ) {
wp_update_post( array(
'id' => $post->ID,
'post_status' => 'expired'
));
}
}
}
}
add_action( 'daily_cron', 'expire_posts' );
// Cron Deactivation //
function daily_cron_deactivation() {
wp_clear_scheduled_hook( 'daily_cron' );
}
register_deactivation_hook( __FILE__, 'daily_cron_deactivation' );
?>
以上是关于php Wordpress - 添加过期帖子状态和Cron任务以在X天后过期的主要内容,如果未能解决你的问题,请参考以下文章
php 在WordPress中添加自定义帖子状态
php 在WordPress中添加自定义帖子状态
php 将帖子计数类添加到WordPress循环
php 将字段添加到WordPress帖子提交框
PHP Wordpress - 每隔4个帖子添加最后一堂课
php 将新的自定义帖子类型添加到Wordpress