WordPress有著比較強大的分類機制,包括文章分類、標簽等,強大的分類機制可以用來實現門戶網站的類似二級頻道的功能,這樣增加分類目錄的訂閱功能就比較重要了。
WordPress 有原生的 RSS 訂閱功能,但是通常只是生成整站的文章訂閱和文章的評論訂閱。本文就來介紹如何生成分類目錄的訂閱鏈接。
1.簡單的訂閱分類目錄的方法
首先,你必須要先打開一個分類目錄。如果站點開啟了固定鏈接,你看到的分類目錄鏈接可能會是這種形式的:
http://localhost/category/markup/
這時候,我們只需要在后面的鏈接中加入 feed ,之后得到的就是訂閱的地址,例如:
http://localhost/category/markup/feed/
如果站點沒有開啟,而是使用了默認的,你可能會看到類似下面這種鏈接:
http://localhost/?cat=54
如果獲取它的訂閱地址,就需要加上參數 feed 變成:
http://localhost/?feed=rss2&cat=54
于是,就有了一種實現方法,獲取分類目錄鏈接,然后進行修改再顯示出來。當然,這種方法比較麻煩,而且官方有相關的函數。
2.為站點分類目錄增加訂閱功能
主要的思路是這樣的:首先獲取站點的分類目錄資源,然后使用函數得到分類目錄的訂閱地址,然后輸出或者進行其他操作。
這里主要用到 get_category 和 get_category_feed_link 這兩個函數。從名字就可以看出,get_category 函數是根據分類目錄的 ID 等獲取一個分類目錄對象;get_category_feed_link 函數就是獲取這個分類目錄對象的訂閱地址。
具體操作如下:首先先找到主題目錄下的 category.php 文件,當點擊分類目錄的時候,WordPress 會調用這個文件作為分類目錄的模板。一般成熟的主題都會有這個文件,如果沒有的話,就將 index.php 復制一遍然后改成 category.php 這個文件名。然后打開這個文件,在適當的位置添加下面這段代碼:
- <?php
- $category = get_category( get_query_var('cat') );
- if ( ! emptyempty( $category ) )
- echo '<p><a href="' . get_category_feed_link( $category->cat_ID ) . '" title="訂閱當前分類" rel="nofollow">訂閱</a></p>';
- ?>
刷新之后,在對應位置會出現一個名為“訂閱”的超鏈接,鏈接指向的就是當前分類目錄的訂閱地址。這段代碼使用的是 get_query_var('cat') 這段代碼獲取的當前訪問的分類目錄,所以必須放在 category.php 文件中。
當然還可以使用其他的函數獲取 category 的資源,來得到對應的訂閱鏈接,或者使用 link 標簽添加到文檔的頭部,方便瀏覽器、閱讀器獲取訂閱地址等等。