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