• <strike id="q60me"></strike><ul id="q60me"></ul>
    <ul id="q60me"></ul>
  • <fieldset id="q60me"><input id="q60me"></input></fieldset>

    代碼實現WordPress上一篇和下一篇以及相關文章功能

    站長經驗 尹華峰 瀏覽 評論來源:www.www-2900555.com

      最近博主在弄WordPress網站,也體驗了很多不同的WordPress主題,其中不乏一些優秀主題,如博主以前介紹的知更鳥主題,確實是一個非常優秀的CMS主題,各個方面的SEO細節做得很完善,也因此造成了它在互聯網過于泛濫,帶來審美疲勞。

      以前博主搭建WordPress就是覺得網站越酷炫越好,現在博主越來越喜歡簡潔而功能強大的主題,為此也特意購買了一些比較欣賞的主題來體驗一番。但是,有些主題實在是過于簡潔,很多實用的功能也被刪除掉了,如有些主題文章頁沒有“上一篇和下一篇”,沒有相關文章版塊等。在我看來,這些是絕對不能省掉的,除了不利于搜索引擎優化,也同樣不利于讀者瀏覽體驗。當然這些小功能可以通過各種插件來實現,但是我試了不少的插件感覺不盡人意,為此博主尋找了一些方法通過代碼來完成這個小功能。

      實現WordPress上一篇和下一篇代碼方法

      在你的模板文件夾下找到single.php文件,編輯文章頁模板文件,在文章內容下方可插入以下代碼:

    1. <div class="nearbypost">    
    2. <div class="alignleft"><?php previous_post_link('« « %link'); ?></div>    
    3. <div class="alignright"><?php next_post_link('%link  » » '); ?></div>    
    4. </div> 

      當然也可以對樣式進行布局,比如可以修改CSS樣式如下:

    1. .alignleft {  
    2.  float:left;  
    3.  text-align:left;  
    4.  margin-right:10px;  
    5. }  
    6. .alignright {  
    7.  float:rightright;  
    8.  text-align:rightright;  
    9.  margin-left:10px;  
    10. }  

      實現WordPress相關文章的三種方法

      同理,找到文章頁模板文件,在需要展示相關文章列表的地方添加如下代碼。

      方法一、標簽相關

    1. <ul id="tags_related">
    2. <?php
    3. global $post;
    4. $post_tags = wp_get_post_tags($post->ID);
    5. if ($post_tags) {
    6.   foreach ($post_tags as $tag) {
    7.     // 獲取標簽列表
    8.     $tag_list[] .= $tag->term_id;
    9.   }
    10.   // 隨機獲取標簽列表中的一個標簽
    11.   $post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ];
    12.   // 該方法使用 query_posts() 函數來調用相關文章,以下是參數列表
    13.   $args = array(
    14.         'tag__in' => array($post_tag),
    15.         'category__not_in' => array(NULL),  // 不包括的分類ID
    16.         'post__not_in' => array($post->ID),
    17.         'showposts' => 6,                           // 顯示相關文章數量
    18.         'caller_get_posts' => 1
    19.     );
    20.   query_posts($args);
    21.   if (have_posts()) {
    22.     while (have_posts()) {
    23.       the_post(); update_post_caches($posts); ?>
    24.     <li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
    25. <?php
    26.     }
    27.   }
    28.   else {
    29.     echo '<li>* 暫無相關文章</li>';
    30.   }
    31.   wp_reset_query();
    32. }
    33. else {
    34.   echo '<li>* 暫無相關文章</li>';
    35. }
    36. ?>
    37. </ul>

      PS:"不包括的分類ID" 指的是相關文章不顯示該分類下的文章,可自定義將NULL改成文章分類的ID即可,多個ID就用半角逗號隔開,滿足站長的多樣化需求。因為這里限制只顯示6篇相關文章,所以不管給 query_posts() 的參數 tag__in 賦多少個值,都是只顯示一個標簽下的6 篇文章,除非第一個標簽有1篇,第二個標簽有2篇,第三個有3篇...若當前文章有多個標簽對應,那么采取的做法是隨機獲取一個標簽的id,賦值給 tag__in 這個參數,獲取該標簽下的6篇文章。

      方法二、分類相關

    1. <ul id="cat_related">
    2. <?php
    3. global $post;
    4. $cats = wp_get_post_categories($post->ID);
    5. if ($cats) {
    6.     $args = array(
    7.           'category__in' => array$cats[0] ),
    8.           'post__not_in' => array$post->ID ),
    9.           'showposts' => 6,
    10.           'caller_get_posts' => 1
    11.       );
    12.   query_posts($args);
    13.   if (have_posts()) {
    14.     while (have_posts()) {
    15.       the_post(); update_post_caches($posts); ?>
    16.   <li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
    17. <?php
    18.     }
    19.   }
    20.   else {
    21.     echo '<li>* 暫無相關文章</li>';
    22.   }
    23.   wp_reset_query();
    24. }
    25. else {
    26.   echo '<li>* 暫無相關文章</li>';
    27. }
    28. ?>
    29. </ul>

      此方法則是通過獲取該文章的分類id,然后獲取該分類下的6篇文章,來達到獲取相關文章的目的。

      方法三、作者相關

    1. <ul id="author_related">
    2. <?php
    3.   global $post;
    4.   $post_author = get_the_author_meta( 'user_login' );
    5.   $args = array(
    6.         'author_name' => $post_author,
    7.         'post__not_in' => array($post->ID),
    8.         'showposts' => 6,               // 顯示相關文章數量
    9.         'orderby' => date,          // 按時間排序
    10.         'caller_get_posts' => 1
    11.     );
    12.   query_posts($args);
    13.   if (have_posts()) {
    14.     while (have_posts()) {
    15.       the_post(); update_post_caches($posts); ?>
    16.   <li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
    17. <?php
    18.     }
    19.   }
    20.   else {
    21.     echo '<li>* 暫無相關文章</li>';
    22.   }
    23.   wp_reset_query();
    24. ?>
    25. </ul>

      此方法是獲取該文章作者的其他文章來充當相關文章,比較適合一些多個站長運營的網站。

      結語:博主之所以堅持給網站添加上一篇和下一篇以及相關文章,是因為博主是做SEO的,站在搜索引擎的角度來說,上一篇和下一篇以及相關文章的鏈接不僅可以增加搜索引擎蜘蛛抓取,而且也有利于網頁權重值傳遞。站在用戶的角度,相關的文章就好比是推薦,以及相關信息的進一步獲取,對讀者也是非常有利的。另外博主要補充的就是,關于相關文章實現方法,博主是建議選擇第一種,標簽往往更貼近主題。

      精品一久久香蕉国产二月| 青青草国产精品久久| 国产精品亚洲专区一区| 99久久久精品免费观看国产| 久久久九九有精品国产| 久久精品无码一区二区三区日韩| 日韩精品免费电影| 日韩在线视频播放免费视频完整版| 人妻熟妇乱又伦精品HD| 国产精品成人观看视频国产| 日韩精品真人荷官无码| 久久九九亚洲精品| 国内精品免费久久影院| 国产精品 码ls字幕影视| 日韩免费无码一区二区视频| 四库影院永久在线精品| 精品久久中文网址| 久久精品国产导航| 精品国产日韩久久亚洲| 亚洲欧洲国产成人精品| 久久久免费精品re6| 国产精品美女久久久久久2018| 日日噜噜噜噜夜夜爽亚洲精品| 精品人妻一区二区三区毛片| 亚洲精品无码专区久久同性男| 免费精品视频在线| 日韩在线看片中文字幕不卡| 久久精品国产网红主播| 国产成人精品免高潮在线观看 | 最新国产精品自拍| 狠狠精品干练久久久无码中文字幕| 99精品无人区乱码在线观看| 91精品成人免费国产片| 亚洲欧洲精品久久| 精品国产乱码久久久久久呢| 337p日本欧洲亚洲大胆精品555588| 久久亚洲美女精品国产精品| 久久亚洲精品国产精品| 久久精品国产第一区二区三区| 99j久久精品久久久久久| 99久久久国产精品免费牛牛|