Wordpress中显示页面当前位置
Wordpress中顯示頁面當前位置
在瀏覽網站的時候,很多網站都提供了頁面定位的功能,一般在文章的上方以這樣的形式顯示:
首頁 >> ?分類 >> 子分類 >> ? >> 閱讀正文
那如何在wordpress中實現這樣一個功能呢?當然很多主題已經提供了這樣一個功能。如果你使用的主題沒有提供這樣一個功能,或者你想做帶有這種位置提示功能的主題,不妨參考DDBug今天為你提供的方法,或許對你有用。
兩個函數
首先介紹一下需要用到wp函數:get_the_category和get_category_parents get_the_category的作用是獲取文章的所屬分類列表(如果屬于多個分類的話),返回一個分類數組,函數原型如下: get_the_category( $id = false )
參數$id是文章的post id,默認為當前文章的post id(用于Loop循環中)。 get_category_parents的作用是獲取指定分類id的所有父級分類,函數原型如下:
get_category_parents( $id, $link = false, $separator = '/', $nicename = false, $visited = array() )
其中第一個參數$id是必須的,需要傳入分類ID(category id),其它幾個參數為可選,簡單說明一下:
第二個參數$link標識是否需要超級鏈接,如果為true,返回的分類都帶有鏈接,點擊后顯示分類下的所有文章;如果為false,返回的分類不帶鏈接,不可點擊。默認為false,不過這里為了達到我們想要的效果,需要把它設置為true。 第三個參數$separator是分類之間的分隔符,默認是“/”,你可以把它改成“>>”或者其它樣式(可以通過CSS定義更多高級的樣式)。
第四個參數$nicename標識是否顯示分類別名,默認為false,即不顯示別名(顯示分類的實現名稱)。如果你想顯示分類別名,需要把它設置為true。一般我們都是顯示分類的實際名稱,所以這里用默認即可。
第五個參數$visited是一個數組,保存已經遍歷的分類,$visited數組中的分類不會被再次遍歷。這里我們不需要傳入這個參數。
如果你想進一步了解get_the_category和get_category_parents,可以參看它們的源代碼:wp-includes\category-template.php
實現方法
對這兩個函數有了基本的了解之后,實現定位文章位置的功能就很簡單了: 在你的模板文件夾下找到single.php文件,用文本編輯器打開,先找到Loop循環的位置,一般以下面這段代碼開始
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
然后在其后的適當位置(一般在標題之前,當然你也可放在任何你想放的位置)中加入如下代碼
<p>當前位置: <a href="http://domety.com/" title="首頁">首頁</a>>><?php $categorys = get_the_category(); $category =
$categorys[0];echo(get_category_parents($category->term_id,true,'>>')); ?> 閱讀正文</p>
這樣就實現了我們想要的效果。不過這里有個問題需要注意:在你寫文章的時候,最好把文章只歸為一個單獨的分類中,因為這段代碼會自動查找該分類的父 級分類。如果你把文章歸為不同的類別下面,這個方法也只顯示其中的一個分類路徑(正如代碼中的$category=$categorys[0])。比如我 把這篇文章歸類到wordpress下,就不必再選擇wordpress的父級分類“程序開發”了。
轉載于:https://blog.51cto.com/brokenjoin/1296374
總結
以上是生活随笔為你收集整理的Wordpress中显示页面当前位置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到癞蛤蟆预示着什么
- 下一篇: 知识管理在客户关系管理中的应用领域