共計 2768 個字符,預計需要花費 7 分鐘才能閱讀完成。
這篇文章主要介紹“怎么使用 WordPress 制作主題導航菜單”的相關知識,丸趣 TV 小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“怎么使用 WordPress 制作主題導航菜單”文章能幫助大家解決問題。
一、使用 get_terms() 來獲取分類列表
使用 get_terms() 可以獲取你的文章分類、鏈接分類和自定義分類等,給 get_terms() 傳遞相應的參數可以給你返回一個對象數組,這個數組就是你想要的所有分類,以下是 get_terms() 的函數原型:
?php get_terms($taxonomies, $args) ?
$taxonomies:
該參數是你想要獲取的分類類別,可選值包括:category,link_category,my_taxonomy,他們分別代表文章分類、鏈接分類以及你自定義的分類,其中 my_taxonomy 是你自定義的分類名稱。
$args:
該參數是分類的篩選參數,用于控制獲取你要獲取的分類,包括你想要獲取多少個分類、如何排序、父分類以及是否輸出空的分類等,具體請參考 WordPress 官方文檔:Function Reference/get terms,或者參考中文的簡要翻譯:常用函數 -get_terms()
下面是一個該函數的使用示例,這里將顯示一個所有文章分類的 ul li .. /li .. /ul 形式的無序列表,當然我們可以把它看成菜單:
ul id= menu
?php
// 獲取分類
$terms = get_terms(category , orderby=name hide_empty=0
// 獲取到的分類數量
$count = count($terms);
if($count 0){
// 循環輸出所有分類信息
foreach ($terms as $term) {
echo li a href= .get_term_link($term, $term- slug). title= .$term- name. .$term- name. /a /li
}
}
?
/ul
get_terms() 函數返回一個對象數組 $terms,我們首先判斷這個數組是否為空,為空說明并沒有獲取到任何分類,如果不為空那么你就可以輸出分類了。$terms 的每個數組項就是一個對象,部分對象屬性的意義如:slug:分類縮略名,name:分類名,term_id:分類 id。如以上代碼所示,你可以通過 $term- name 來獲取對象的屬性值。
二、使用讀數據庫的方式獲取分類列表
如果你了解 WordPress 的數據庫,可以發現 WordPress 的分類信息都存儲在 wp_terms 和 wp_term_taxonomy 這兩個表中,wp_terms 存儲基本信息(包括文章分類、文章標簽和鏈接分類等),wp_term_taxonomy 用于存儲進一步描述(用于存儲描述、區分分類和標簽等)。我們可以使用 SQL 來從這兩個表中獲取我們想要的分類列表:
ul id= menu
?php
$cats = $wpdb- get_results(SELECT {$wpdb- prefix}terms.term_id, name
FROM {$wpdb- prefix}term_taxonomy, {$wpdb- prefix}terms
WHERE {$wpdb- prefix}term_taxonomy.term_id = {$wpdb- prefix}terms.term_id
AND taxonomy = category
if($cats) {
foreach($cats as $cat) {
echo li a href= .get_category_link($cat- term_id). title= .$cat- name. .$cat- name. /a /li
}
}
?
/ul
三、如何獲取當前分類的 id
有些時候我們需要制作一個子導航,如 http://www.nashowgroup.com/?p=58 lang=zh 左邊的人力資源導航,這個導航可以是任意項目,如當前分類下的子分類或者當前分類下的文章等。那么首要問題就是,如何獲取當前分類的 id,這樣才可以進行下一步的動作。
在分類頁獲取當前分類的 id:
if (is_category() ) {
$cat_id = get_query_var(cat
}
在文章頁獲取該文章的第一個分類:
$cats = get_the_category();
if($cats)
$cat_id = $cats[0]- cat_ID;
四、子導航的制作
上面我們講解了如何獲取當前分類的 id,下面我們來講講如何制作子導航。首先,我們來制作一個當前分類下子分類的子導航,這里用到 wp_list_categories() 來列出子分類,當然你可以用我前面介紹的兩種方法來獲取分類。:
ul
?php
// 這里我們用到上面獲取到的 $cat_id,獲取該分類下的所有子分類
wp_list_categories(orderby=name hide_empty=0 child_of= . $cat_id);
?
/ul
如果你的網站規模比較小,一個分類下的文章也不多,那么你可以在子導航中列出這個分類下的所有文章:
ul
?php
global $wp_query;
$query = array (cat = $cat_id, orderby = title, order = ASC);
$queryObject = new WP_Query($query);
if ($queryObject- have_posts()) :
while ($queryObject- have_posts()) :
$queryObject- the_post();
?
li a ?php if($post- ID == $wp_query- post- ID) echo > ?php endwhile; wp_reset_postdata(); endif; ?
/ul
五、頁面 page 的獲取
WordPress 的頁面 page 可以通過 wp_list_pages() 來列出,不過這個函數輸出的 HTML 都是固定的,如果你想要自定義這些 HTML,可以使用 get_pages() 來獲取頁面列表,代碼示例如下:
ul id= menu
$mypages = get_pages();
if(count($mypages) 0) {
foreach($mypages as $page) {
echo li a href= .get_page_link($page- ID). title= .$page- post_title. .$page- post_title. /a /li
}
}
else {
echo li a href= # 沒有頁面 /a /li
}
/ul
關于“怎么使用 WordPress 制作主題導航菜單”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注丸趣 TV 行業資訊頻道,丸趣 TV 小編每天都會為大家更新不同的知識點。