WordPress 模板中顯示隨機文章的實現方式與用法
大致代碼如下:

<?php

$query = array(
	'post_type'	=> 'post',
	'orderby'	=> 'rand'
);
$posts = new WP_Query( $query );
if ( $posts->have_posts() ) {
	while( $posts->have_posts() ) : 
			$posts->the_post();
			the_content();
	endwhile;
}
wp_reset_query();

?>

回頭來看看這一段代碼,其實很簡單,在理解了的前提下,提出需要實現 「隨機推薦」,該怎麼實現呢?

WordPress 實現隨機推薦

在幫一個朋友修改主題的時候,他要求在側邊欄加上一個隨機推薦的功能,為了減少工作量,將置頂文章默認為值得推薦的文章 (或許有其他簡便的方法),實現代碼如下:

<?php
//獲取置頂文章的 ID 串
$rand_id = get_option( 'sticky_posts' );

$query = array(
	'post__in'	=> $rand_id, 
	'post_type'	=> 'post',
	'orderyby'	=> 'rand',
	'numberposts'	=> 2
);
$posts = new WP_Query( $query );
if ( $posts->have_posts() ) {
	while( $posts->have_posts() ) : 
			$posts->the_post();
			the_content();
	endwhile;
}
wp_reset_query();

?>

至於添加到 widgets 這裏就不詳説了。

進階應用:隨便看看的功能實現

現在來看看 「隨便看看」 是怎麼實現的?大家不防到我的博客 (jokerliang.com) 看看導航欄 「隨便看看」 的效果。
其實實現這樣的功能也不難,首先在後台主題 「菜單」 裏,添加自定義鏈接,鏈接地址寫成 「http://yourdomain.com/random」 或者 「http://yourdomain.com/index.php?random=1」 之類的都行。
然後在當前皮膚下的 functions.php 裏添加如下代碼:

<?php
add_action('init','random_add_rewrite');
add_action('template_redirect','random_template');

function random_add_rewrite() {
       global $wp;
       $wp->add_query_var('random');
       add_rewrite_rule('random/?$', 'index.php?random=1', 'top');
}

function random_template() {
       if (get_query_var('random') == 1) {
               $posts = get_posts('post_type=post&orderby=rand&numberposts=1');
               foreach($posts as $post) {
                       $random_link = get_permalink($post);
               }
               wp_redirect($random_link,307); //307 臨時跳轉
               exit;
       }
}
?>

至此,效果已經實現 (注:貌似 3.3 以前的老版本,需要進固定鏈接,執行一下 「保存更改」 才有效果)!當然網上也有通過新建頁面,然後用 javascript 跳轉的方法,大家也可以借鑑借鑑。