大家可能在管理網站時慢慢失去了更新網站的動力,又或者我們的網站有許多優質的老文章、卻無人問津,在這些情況下,我們就有需要爲WordPress添加僞更新的功能,這個功能可以在特定時間於網站的首頁內自動隨機顯示一篇隨機文章,讓你的舊文章也煥發出光芒!
教學
提示:本站首頁的首篇及尾篇文章所使用的是全隨機文章、也就是在沒有緩存的情況下每次刷新都將會出現不同的文章,與本文所實現的效果不同!
1、首先,將下方代碼添加到「佈景函式庫 (functions.php)」的最底部 ?> 之前,然後點擊 更新檔案
注意:如果你的首頁文章概要不是通過模板 get_template_part 函數所獲取、你需要將「index.php」中顯示文章概要的代碼替換下方 show_the_index 函數的代碼!
| 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | /* 爲你的WordPress添加僞更新功能開始(由AREFLY.COM製作) */ function show_the_index() { 	// 注意:如果你的首頁文章概要不是通過模板(get_template_part函數)所獲取、你需要將index.php中顯示文章概要的代碼替換下方的代碼! 	get_template_part('entry', get_post_format()); } function home_page_stored_random_post($count = 24) { 	global $wpdb; 	$last = $wpdb->get_results("SELECT MAX(post_date) AS MAX_m FROM $wpdb->posts WHERE (post_type = 'post' ) AND (post_status = 'publish' )"); 	$laststamp = strtotime($last[0]->MAX_m); 	$hours = (time()+3600*8 - $laststamp)/3600; 	if($hours > $count) {	//如果當前時間距離最後一次更新文章的時間已經超過 $count 的數值,則執行僞更新 		if((time()+3600*8 - get_option("random_post_last_time"))/3600 > $count) { 			update_option("random_post_last_time", time()+3600*8); 			$rand_query = new WP_Query("showposts=1&orderby=rand"); 			if($rand_query->have_posts()){ 				while($rand_query->have_posts()){ 					$rand_query->the_post(); 					global $id; 					update_option("random_post_postid", $id); 					show_the_index();	//調用主題式樣顯示該文章 				} 			} 		} else { 			$rndpostid = get_option("random_post_postid"); 			$rand_query = new WP_Query("p=" .$rndpostid); 			if($rand_query->have_posts()){ 				while($rand_query->have_posts()){ 					$rand_query->the_post(); 					show_the_index();	//調用主題式樣顯示該文章 				} 			} 		} 	} } function home_page_random_post() {	//【該函數即上文所提本站使用之功能】在每次刷新後顯示不同的隨機文章 	global $wpdb; 	$last = $wpdb->get_results("SELECT MAX(post_date) AS MAX_m FROM $wpdb->posts WHERE (post_type = 'post' ) AND (post_status = 'publish' )"); 	$rand_query = new WP_Query("showposts=1&orderby=rand"); 	if($rand_query->have_posts()){ 		while($rand_query->have_posts()){ 			$rand_query->the_post(); 			global $id; 			show_the_index(); 		} 	} } /* 爲你的WordPress添加僞更新功能結束(由AREFLY.COM製作) */ | 
2、將下列代碼添加(高亮部分)到「index.php」中的 <?php if (have_posts()) : ?> 之前以加載隨機文章:(可以將 12 改爲任意小時數)
| 1 2 3 4 5 6 7 | <?php if(function_exists('home_page_stored_random_post')) home_page_stored_random_post(12); ?> <?php if (have_posts()) : ?> 	<?php while ( have_posts() ) : the_post(); ?> 		//該段代碼即前文所述之【文章概要代碼】! 		<?php get_template_part('entry', get_post_format()); ?> 	<?php endwhile; ?> <?php endif; ?> | 
3、現在刷新你的首頁看看,如果你的上一篇文章更新時間少於 $count 內的小時數,應該你的網站就會自動調用一篇文章來顯示啦!  
 
參考
WordPress技巧:令你的站點保持更新的方法 — 偽更新 — 隨機更新
歷史上的今天
2013年:澳門之旅(7條評論)
