انتشار مطالب زمان بندی شده

انتشار مطالب زمان بندی شده

به تازگی ها یه مشکلی در وردپرس مشاهده شده که مطالب زمانبندی شما ارسال نمیشه! یعنی مطالبی که به آینده ارسال کردید منتشر نمی شوند. این مشکل هنگام افتتاح همین سایت نیز موجود بود و بر آن شدیم که یه کدی بنویسیم که مطالب را سر زمان منتشر کنه. البته یه نکته حائز اهمیت هست که باید قابلیت 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 را معرفی کنیم. این تابع یه ورودی میگیره (آی دی مطلب) و اون را از هر حالتی هست منتشر می کنه. امیدوارم کاربردی بوده باشه.

2 thoughts on “انتشار مطالب زمان بندی شده

  1. سلام 

    بنده وقتی نوشته زمان بندی شده برای سایت طراحی میکنم درصورتی که تصویر شاخص برای آن نوشته قرار میدم  ر لحظه منتشر میشه ! در حالی که اگر تصویر شاخص نذارم مطلب بر اساس زمانی که دادم در آینده منتظر میشه !!!!! نمیدونم مشکل کجاست ؟! بنظرتون چیکار باید بکنم؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.