本文目錄1為什麼要定時發佈文章?2如何定時發佈文章?3定時發佈失效怎麼辦?
WordPress的定時發佈文章的功能是十分有用的,也許你還沒有發現,和一起來認識一下吧。
為什麼要定時發佈文章?
定時按量發佈文章,對於用戶體驗和SEO都有比較大的好處。不少朋友寫部落格都是不太有規律的,有興致的時候,一連發好幾篇文章,沒興致的時候,N舊也不發一篇。你換位思考一下,如果你喜歡並訂閱瞭某個部落格,但是對方發文章很沒有規律,你會不會比較反感?
通常建議的方法是:按時按量發佈文章。比如你一個月大概寫10篇文章,那就盡量3天發佈一篇,而且定在當天的固定時段,比如,一般固定在早上6-7點間。這樣一來,不僅訪客比較容易找到你的規律,就連搜索引擎的蜘蛛也一樣會比較按規律辦事的。
如何定時發佈文章?
在發佈文章的界面右邊的【發佈】選項,點擊一下[立即發佈]右邊的“編輯”,就會出現下圖所示的界面,可以選擇發佈日期和時間,設定後,確定即可:
如果你使用Windows Live Writer發佈文章,隻需要勾選日期,然後修改時間即可:
註意:
1、如果你的服務器是在國外,要先在“設置”-“常規”中將時間格式設置一下,我們國內的時間是UTC+8。
2、時間是按服務器的時間來算的,不是本地電腦時間,所以有可能會有幾分鐘誤差。最好先測試一下幾分鐘後的定時,看著它定時發佈/更新一篇文章。
3、如果想要取消定時發佈功能,點擊第一行的狀態:草稿,選擇編輯然後更改為草稿,再點擊更新文章就OK啦。
定時發佈失效怎麼辦?
WordPress默認發佈文章的時間是0.01秒,一旦超過這個時間而沒有發佈成功,定時發佈文章就會失敗。如何解決Wordpress定時發佈失敗呢?下面有兩種方法。
方法一:修改 /wp-includes/cron.php 系統文件
打開wp-includes目錄下面的cron.php文件,找到“timeout”代碼:
1 |
wp_remote_post( $cron_url, array( 'timeout' => 0.01, 'blocking' => false, 'sslverify' => apply_filters( 'https_local_ssl_verify', true ) ) ); |
wp_remote_post( $cron_url, array( ‘timeout’ => 0.01, ‘blocking’ => false, ‘sslverify’ => apply_filters( ‘https_local_ssl_verify’, true ) ) );
將代碼後面的數值0.01修改為比0.01大就可以瞭,也可以修改為10.00。
不是很推薦這種方法,因為WordPress版本更新後,你需要再次修改這個文件。
方法二:使用WP Missed Schedule外掛
下載 WP Missed Schedule ,安裝啟用即可;如果你不想安裝外掛,也可以直接將該外掛的代碼添加到 functions.php 的最後面即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php if(!function_exists('add_action')){ header('Status 403 Forbidden');header('HTTP/1.0 403 Forbidden');header('HTTP/1.1 403 Forbidden');exit();} ?> <?php function wpms_log(){ echo"\n<!--Plugin WP Missed Schedule 2011.0920.2011 Active-->"; } add_action('wp_head','wpms_log'); add_action('wp_footer','wpms_log') ?> <?php define('WPMS_DELAY',5); define('WPMS_OPTION','wp_missed_schedule'); function wpms_replace(){ delete_option(WPMS_OPTION); } register_deactivation_hook(__FILE__,'wpms_replace'); function wpms_init(){ remove_action('publish_future_post','check_and_publish_future_post'); $last=get_option(WPMS_OPTION,false); if(($last!==false)&&($last>(time()-(WPMS_DELAY*60))))return; update_option(WPMS_OPTION,time()); global$wpdb; $scheduledIDs=$wpdb->get_col("SELECT`ID`FROM`{$wpdb->posts}`"."WHERE("."((`post_date`>0)&&(`post_date`<=CURRENT_TIMESTAMP()))OR"."((`post_date_gmt`>0)&&(`post_date_gmt`<=UTC_TIMESTAMP()))".")AND`post_status`='future'LIMIT 0,5"); if(!count($scheduledIDs))return; foreach($scheduledIDs as$scheduledID){if(!$scheduledID)continue; wp_publish_post($scheduledID);} } add_action('init','wpms_init',0) ?> |
<?php
if(!function_exists(‘add_action’)){
header(‘Status 403 Forbidden’);header(‘HTTP/1.0 403 Forbidden’);header(‘HTTP/1.1 403 Forbidden’);exit();}
?>
<?php
function wpms_log(){
echo"\n<!–Plugin WP Missed Schedule 2011.0920.2011 Active–>";
}
add_action(‘wp_head’,’wpms_log’);
add_action(‘wp_footer’,’wpms_log’)
?>
<?php
define(‘WPMS_DELAY’,5);
define(‘WPMS_OPTION’,’wp_missed_schedule’);
function wpms_replace(){
delete_option(WPMS_OPTION);
}
register_deactivation_hook(__FILE__,’wpms_replace’);
function wpms_init(){
remove_action(‘publish_future_post’,’check_and_publish_future_post’);
$last=get_option(WPMS_OPTION,false);
if(($last!==false)&&($last>(time()-(WPMS_DELAY*60))))return;
update_option(WPMS_OPTION,time());
global$wpdb;
$scheduledIDs=$wpdb->get_col("SELECT`ID`FROM`{$wpdb->posts}`"."WHERE("."((`post_date`>0)&&(`post_date`<=CURRENT_TIMESTAMP()))OR"."((`post_date_gmt`>0)&&(`post_date_gmt`<=UTC_TIMESTAMP()))".")AND`post_status`=’future’LIMIT 0,5");
if(!count($scheduledIDs))return;
foreach($scheduledIDs as$scheduledID){if(!$scheduledID)continue;
wp_publish_post($scheduledID);}
}
add_action(‘init’,’wpms_init’,0)
?>
好瞭,從現在開始,規律更新你的部落格吧!