[WordPress] 幾個主要版面功能的設定備忘註記

一、側邊欄列出 RSS 訂閱方式 :

跟隨潮流與為了網站訂閱功能的可攜性,所以也申請了 "Google FeedBurner",讓自己的網站有一個唯一 (unique)的訂閱網址。

透過 FeedBurner 訂閱的方式有兩種: 以 Email 訂閱,或直接以 RSS 閱讀器訂閱。

另外我仍提供了 wordpress 預設的 RSS 訂閱方式。兩者的差別好像 (我也不清楚)是後者在遇到 {閱讀全文} 的標籤前,都可以列出本文的內容,而不像 feedburner 需事先設定本文的長度。

我的 RSS 訂閱網址為:
 o FeedBurner: http://feeds.feedburner.com/kenming
 o WordPress: http://www.kenming.idv.tw/feed

實現的效果參考下圖:
Sidebar RSS 訂閱提供

繼續閱讀 »

{wp plugin} 讓舊網址鍊結自動導向到新網址的利器— Redirection

當初考慮從 b2evolution 轉移到 wordpress 系統時,其中一個讓我猶豫遲未轉移的主要原因是,包括 Google 等搜尋網站與其它諸多網站均有指向我諸多文章的固定鍊結 (permalink),一旦轉移後,自然地原有這些文章的鍊結就會失連了。 除了對支持貼上我文章鍊結的網友們感到抱歉外,同時也會影響到所謂的 SEO (Search Engine Optimization)。

不過衡量諸多利弊得失後,還是長痛不如短痛,咬著牙給轉移到 wordpress 系統來了。 結果有一個驚喜是,發現到 wordpress 可以自行設定可讀性較高的固定鍊結 (permalink)格式,所以從 b2evolution 轉檔的時候,我就有個想法,可以把原來舊文章的固定鍊結給寫入到 wp_posts Table 的 Post_name 欄位內,它其實對應的就是文章所謂的 Slug,文章標題的代稱 (Alias)。 原來是打算當在 wordpress 設定固定網址的格式為 %postname% 時,就會在網址列 (url)顯示這個 Slug 內的鍊結名稱,這樣的話舊有的文章鍊結就可以保存了。 但是事與願違,儲存在 Slug 欄位的舊文章鍊結格式例如為這樣:

am_ac_acce_fa_mc_a_fc_a_af_ac_acc

當你設固定鍊結格式為 %postname% 時,該篇文章的完整 URL 鍊結為:

http://www.kenming.idv.tw/am_ac_acce_fa_mc_a_fc_a_af_ac_acc

但其實其它網站所指向本站舊文章的 URL 鍊結為:

http://www.kenming.idv.tw/index.php?title=am_ac_acce_fa_mc_a_fc_a_af_ac_acc&more=1&c=1&tb=1&pb=1

多了 "title=" 以及 "&more=1&c=1&tb=1&pb=1″。 所以除非我當初在轉檔時是轉成這樣的格式並儲存在 Slug 欄位才可以。

再繼續爬文研究,才瞭解到舊網址鍊結是可以經過一些設定後,給重新導向 (redirect)到新網址的鍊結來的。 主要的原理就在於所謂的 301 條款,可以參考 Wikipedia 這一篇的說明: URL redirection。 簡單的說就是將舊網址的鍊結,透過 HTTP 301 的永久轉移 (moved permanently),而可以重新導向到新的網誌鍊結。 在 Apache 的具體作法就是更改 .htaccess 檔案,例如,當你在 wordpress 後台將固定網址 (permalink)設定為自訂結構 (如 %postname%)後,在 wordpress 根目錄下就會自動產生一個 .htaccess 檔案,其內容如下:
繼續閱讀 »

{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 排一版只花兩分鍾即可,所以在這種小地方,也就不想太講究、多花這些無謂的研究功夫了。

Page 1 of 180123456789101112...203040...Last »