WordPress相關文章調取方式變為同標簽文章隨機顯示
編輯:狂族晨曦 來源:WordPress技巧 日期:2016-03-09 閱讀: 2,389 次 搶個沙發 百度已收錄
先森現在閑來無事就折騰網站,還在想著怎么給文章圖片加水印等系列問題,又想到前幾天把標簽頁的文章縮略圖用上了七牛縮略圖,使文章加載時的圖片體積減小了很多,同理可以把每篇文章下的相關文章的縮略圖也用上。關于文章的縮略圖,大家可以看看:
繼續上文,先森按照同樣的方法后,發現每篇文章下面的相關文章,竟然都是一樣的,這讓先森大吃一驚:

文章1下面的相關文章

文章1下面的相關文章
解釋一下,先森用的相關文章的代碼,是倡萌在WordPress大學上分享的:
-
WordPress大學:WORDPRESS添加相關文章功能(標題/縮略圖樣式)
先森想要實現的情況是,顯示本篇文章同一個標簽下的隨機5篇文章。這本來是很簡單的一件事,但是先森還是繞了很大的彎子。先森把倡萌提供的代碼一句一句的研究,重點是有時候還跳著,最后發現剛好把重要部分跳過了。但其實還是有好處的,就是讓先森對WordPress的代碼理解的更多了。
下面先森把倡萌提供的代碼經過先森注解后的代碼貼出來:
<h3 class="related_articles"><span>相關文章</span></h3>
<ul class="related_img">
<?php
$post_num = 5; //顯示文章數量
$exclude_id = $post->ID; //獲取當前文章的ID
$posttags = get_the_tags(); //get_the_tags()遞交給$posttags當前文章所以標簽的名稱
$i = 0;
if ( $posttags ) {
$tags = '';
foreach ( $posttags as $tag ) $tags .= $tag->term_id . ','; //分別將$posttags中標簽的名詞遞交給$tag,然后將獲取到的標簽ID遞交給$tags
$args = array(
'post_status' => 'publish',
'tag__in' => explode(',', $tags), //包括的標簽
'post__not_in' => explode(',', $exclude_id), //不包括當前文章
'caller_get_posts' => 1, //排除返回的文章上方的置頂文章
'orderby' => 'rand', //rand:隨機排序;
'posts_per_page' => $post_num //顯示相關文章數量
);
query_posts($args);
while( have_posts() ) { the_post(); ?>
<li class="related_box" >
<div class="r_pic">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank">
<img src="<?php echo post_thumbnail_src(); ?>?imageView2/1/w/130/h/100/q/100" alt="<?php the_title(); ?>" class="thumbnail" />
</a>
</div>
<div class="r_title"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank" rel="bookmark"><?php the_title(); ?></a></div>
</li>
<?php
$exclude_id .= ',' . $post->ID; $i ++;
} wp_reset_query();
}
if ( $i < $post_num ) {
$cats = ''; foreach ( get_the_category() as $cat ) $cats .= $cat->cat_ID . ',';//為$cats賦值分類ID
$args = array(
'category__in' => explode(',', $cats),
'post__not_in' => explode(',', $exclude_id),
'caller_get_posts' => 1,
'orderby' => 'rand', //隨機排序
'posts_per_page' => $post_num - $i
);
query_posts($args);
while( have_posts() ) { the_post(); ?>
<li class="related_box" >
<div class="r_pic">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank">
<img src="<?php echo post_thumbnail_src(); ?>" alt="<?php the_title(); ?>" class="thumbnail" />
</a>
</div>
<div class="r_title"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank" rel="bookmark"><?php the_title(); ?></a></div>
</li>
<?php $i++;
} wp_reset_query();
}
if ( $i == 0 ) echo '<div class="r_title">沒有相關文章!</div>';
?>
</ul>
當然,有些改動,是為了適應本站,大家可以結合著原文看。上面這么長一堆,實現了隨機的部分其實很簡單,重點在于第17行:
'orderby' => 'rand',
“orderby”是選擇排序的方式,先森寫的是“rand”,倡萌分享出來的是選擇“comment_date”。下面解釋一下“orderby”的所有參數:
-
orderby=date 按發布日期排序
-
orderby=modified 按修改時間排序
-
orderby=ID 按文章ID排序
-
orderby=comment_count 按評論最多排序
-
orderby=title 按標題排序
-
orderby=rand 隨機排序
所以這里選擇“rand”就能滿足先森的要求了。更改后到文章中一刷新,看到果然不一樣了:

變為隨機顯示的相關文章
以上就是先森摸索的過程,希望能夠給大家提供一個參考。
歷史上的今天:
- 2017: 最近在忙什么?破解(10)
轉載請注明出處來自http://www.cnidcc.cn/wp_xgwzdqfsbwtbqwzsjxs.html

川公網安備 51011202000104號