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

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

    站長經驗 尹華峰 瀏覽 評論來源:m.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 | freesexvideos精品老师毛多| 成人国产精品一区二区网站公司 | 色欲麻豆国产福利精品| 中文字幕日韩亚洲| 日本内射精品一区二区视频| 精品无人区一区二区三区在线 | 色久综合网精品一区二区| 国产精品无码专区| 国产精品伊人久久伊人电影| 青青青青久久精品国产h久久精品五福影院1421| 麻豆国产精品入口免费观看| 亚洲高清国产拍精品熟女| 亚洲av永久无码精品表情包| 国内精品伊人久久久影院| 国产2021精品视频免费播放| 精品无码久久久久久午夜| 成人国产精品视频频| 成人国产精品高清在线观看| 精品国产福利在线观看一区| 国精产品一品二品国精品69xx| 国产乱人伦精品一区二区| 亚洲日韩国产精品乱-久| 999国内精品永久免费视频| 国产精品亚洲精品观看不卡| 国产精品高清一区二区三区不卡 | 国产SUV精品一区二区88L | 国产69精品久久久久9999APGF| 色妞www精品视频| 中文字幕精品无码一区二区 | 国产乱码精品一区二区三区四川| 精品亚洲成A人无码成A在线观看| 亚洲伊人久久精品| 91精品久久久久久久久中文字幕| 久久精品aⅴ无码中文字字幕重口 久久精品a亚洲国产v高清不卡 | 99亚洲精品高清一二区| 99久久久国产精品免费牛牛| 中文字幕在线视频精品| 国产在线精品一区二区在线观看| 久久久久夜夜夜精品国产| 特级精品毛片免费观看|