{Hack} this day plugin of wordpress

我想要能在讀者閱讀某一篇文章時,在文章區的底部能提供其他相關文章的額外資訊,諸如 延伸閱讀、歷史上的今天等。

延伸閱讀 我採用了 Yet Another Related Posts Plugin (YARPP),功能應該是同類型的外掛中最強的。 它可以依據 標題、本文、標籤(Tag)、類別(Category) 等來找出在部落格內的其它相關連的文章。 大陸網友有寫了篇該插件(plugin)的使用說明,相當詳細。 可惜,透過 “標題” 來找出相關連的文章,對於中文字詞並沒有什麼效果。 反之,透過 “標籤(Tag)” 效果是最好也是最簡單的方式了,但是,前提就是每一篇的文章在下標籤關鍵字時要多更用心些才可。

歷史上的今天,我則是採用了 This Day Plugin,非常簡單,只有一支 PHP 程式而已,就是可以顯示同一部落格內同一日但不同年份的其它文章。

插件啟動後,就會直接把其它年份的 “This Day” 列表在本文內容的底部。 這我可不喜歡,我比較傾向上述這些算是 “額外的資訊”,我是會把這些給獨立放在另一個區塊的,再以 CSS 來調整 layout。 但是,稍稍可惜的是,原作者就是直接內建這個插件功能,並沒有提供可以直接呼叫的函數(function),這就不同於那個 YARPP 插件,可直接將其函數任意放在你想要的 template 位置上。

所以,追蹤了該支 PHP 程式,在最下面有一行把它給註解(comment)掉:

//add_filter('the_content', 'ddtd_generate');

這一行的功能就是屬於對本文內容的 “rendering”,對其本文後面再加上 This Day 的相關資訊而已。

再來,找到 ddtd_show_posts() 函數,在最底下的一行:

return $the_output;

改為:

echo $the_output;

然後,在你所使用的 theme template 目錄下 (wp-content/themes/XXX),利用文字編輯器(如 notepad++) 打開 single.php 檔案,在你想要顯示的位置上插入:

<?php ddtd_show_posts(); ?>

像我,就是把上述兩個額外的相關文章資訊,放在底部(foot)的下一個區塊,並利用 table 給排列成左右兩欄各別的參考資訊。

<div id="extra-info">		<!-- 延伸參考資訊 -->
  <table width= "98%">
    <tr valign="top" align="left">
      <td width= "50%"><?php related_posts(); ?></td>
      <td width= "50%"><?php ddtd_show_posts(); ?></td>
    </tr>
  </table>
</div>

至於為何使用 Table 而不使用 CSS float 來設定呢? 只能說,這比想像得還要難,只要放大縮小瀏覽器視窗,經常就會跑掉排列位置,不勝其擾。而使用 Table 排一版只花兩分鍾即可,所以在這種小地方,也就不想太講究、多花這些無謂的研究功夫了。

文章導覽

   

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *