如何讓WordPress有相關文章功能?(非外掛)

經營一個網站,目的就是要和大家分享資訊,希望讀者們可以常到網站上來拜訪、交流,更進一步的希望可以讓訪客黏著度提高、停留時間更久,那該怎麼做呢?除了將文章寫好之外,當然也要主動的推廣站內其他文章給訪客閱讀,吸引他們的目光,不知道大家的網站上是否有放上「相關文章」呢?

在看一篇文章的時候,如果能在文章下方擺上相關文章,我想這可能有助於訪客在你網站上多停留一些時間。因為訪客會看你那篇文章,表示他對該主題有興趣,那下方可以再放一些相似的文章,可以讓訪客得到更多的資訊,可以學習、了解更多。

像國外的亞馬遜線上書店就有好好的利用這樣的機制,他們的做法是在頁面上顯示「看完這本書的人也會看那些書」,用這樣的方式吸引訪客的目光,讓訪客可以在網站上多瀏覽一些,說不定因此找到喜歡的書,可以購買,提高成交率。這樣的模式如果要應用在WordPress中,可以透過先前介紹的外掛「Last Viewed Posts」。想要吸引訪客多閱讀一些文章,你也可以放上隨機文章或是「歷史上的今天」都是不錯的選擇。

最能吸引訪客閱讀的應該是「相關文章」或「Last Viewed Posts」。WordPress本身有很多相關文章外掛,香腸之前是使用「WordPress Related Posts」來達成效果,不過使用這外掛缺點就是他會在你資料庫新增一張資料表,會多增加資料庫存取就是了,而使用外掛也比起自己寫程式碼來的吃資源,因為外掛為了設計成符合每一個使用者,會加入很多功能選項,但相對的也比較耗資源,如果你單純要相關文章功能,那可以考慮下面的語法。

免外掛的相關文章語法

請將以下語法加入到佈景主題中的functions.php,如果主題內無此檔案,請自行建立,加入的時候,記得別破壞本來檔案內的架構喔!

<?php
function get_similar_post($post_id){
   $tags = wp_get_post_tags($post_id);
   if ($tags) {
      $first_tag = $tags[0]->term_id;
      $args = array(
        'tag__in' => array($first_tag),
        'post__not_in' => array($post_id),
        'showposts'=>5,
        'caller_get_posts'=>1
        );   
        $my_query = new WP_Query($args);
        if( $my_query->have_posts() ) :    while ($my_query->have_posts()) : $my_query->the_post(); ?>
        <li>
            <a href="<?php the_permalink(); ?>" rel="nofollow"  rel="bookmark" title="閱讀:<?php the_title_attribute(); ?>"><?php the_title(); ?> </a>
        </li>
        <?php endwhile;    endif; wp_reset_query();
        }
    }
?>

加入語法後,該如何使用呢?您只要在要顯示相關文章的地方,比方說是single.php頁面中,使用以下語法就可以了。

<?php get_similar_post($post->ID); ?>

預設是顯示5篇文章,如果要多可以在functions.php那個檔案裏面修改「showposts」後面的數字,可以將「5」改成您要顯示的數量。

這個語法的做法是首先抓到文的ID,然後進行判斷他的標籤去撈出相關的文章然後顯示,所以說你的文章標籤必須要下得精準,若文章內沒有使用標籤,或是標籤都是亂下的,那麼這個function所產生的相關文章也就不會準確了!

如何讓WordPress有相關文章功能?(非外掛)

或許目前大家會看到我怎麼沒放了,因為昨天改版完,修改了一些佈景寫法,本來想一放上去,不過還在想該怎麼排比較好,或是可以改用其他顯示方式或許可以更吸引讀者的目光,讓訪客可以閱讀站上更多的文章。