wordpress實現隨機文章
ralix曾發布過關于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();
?>
回頭來看看這一段代碼,其實很簡單,在理解了的前提下,提出需要實現“隨機推薦”,該怎么實現呢?
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)看看導航欄“隨便看看”的效果。
然后在當前皮膚下的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跳轉的方法,大家也可以借鑒借鑒。