曾發布過關于wordpress顯示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();?>
回頭來看看這一段代碼,其實很簡單,在理解了的前提下,提出需要實現“隨機推薦”,該怎么實現呢?
在幫一個朋友修改主題的時候,他要求在側邊欄加上一個隨機推薦的功能,為了減少工作量,將置頂文章默認為值得推薦的文章(或許有其他簡便的方法),實現代碼如下:
<?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里添加如下代碼:
<?phpadd_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/?
至此,效果已經實現(注:貌似3.3以前的老版本,需要進固定鏈接,執行一下“保存更改”才有效果)!當然網上也有通過新建頁面,然后用javascript跳轉的方法,大家也可以借鑒借鑒。
, '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跳轉的方法,大家也可以借鑒借鑒。
下一篇 php 函數遞歸調用實例