یکی از مشکلاتی که در برخی سایت های وردپرسی مشاهده شده عدم انتشار مطالب زمانبندی است، یعنی مطالبی که به آینده ارسال کرده اید منتشر نمی شوند. نکته مهم این است که باید قابلیت cron job در هاست شما فعال باشد. اگه cron job فعال باشد بصورت اتوماتیک پست ها ارسال می شوند و اگر این قابلیت غیر فعال است آن را فعال کنید سپس سایت را تست کنید… اگر نه با ما همراه باشید. برای این کار از wp cron استفاده می کنیم:

register_activation_hook( __FILE__, 'prefix_activation' );

function prefix_activation() {
wp_schedule_event( time(), 'hourly', 'prefix_hourly_event_hook' );
}

add_action( 'prefix_hourly_event_hook', 'prefix_do_this_hourly' );

function prefix_do_this_hourly() {
global $wbdb;
$q = $wpdb->get_results("SELECT post_date FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'future' AND post_date <= NOW();" , ARRAY_A);
foreach($q as $post_id){
wp_publish_post( $post_id['id'] );
}
}

با اضافه کردن این کد به فایل functions.php قالب خود، هر 1 ساعت بررسی می شود که مطلب تاریخ گذشته وجود دارد یا خیر. اگه وجود داشت (به هر تعدادی) آنها را منتشر می کند. جا دارد اینجا تابع wp_publish_post را معرفی کنیم. این تابع یک ورودی می گیرد (آی دی مطلب) و ان را از هر حالتی هست منتشر می کند.