WordPress分類法(taxonomies)是許多WordPress開發(fā)人員從未使用過的東西。有些人甚至從未聽說過WordPress分類法。
當(dāng)WordPress 3.0在大約10年前引入分層分類法時,分類法已成為WordPress開發(fā)人員工具包中更有用的工具。在較高的層次上,我們可以將分類法視為將事物組合在一起的方式。在WordPress平臺內(nèi),分類法是一種將文章、自定義文章類型或鏈接等內(nèi)容進(jìn)行分組的機(jī)制。
在這個WordPress分類法指南中,我們將介紹您需要了解的有關(guān)WordPress分類法的一切,以及如何使用它們來改善網(wǎng)站結(jié)構(gòu)和用戶體驗。
什么是WordPress分類法?
如果您查看官方的WordPress Codex,您會發(fā)現(xiàn)WordPress分類法定義為“所有內(nèi)容的分組機(jī)制”。?簡而言之,WordPress分類法允許您根據(jù)文章共享的特征對文章進(jìn)行分組。
例如,假設(shè)您正在運行一個有關(guān)過去40年流行音樂的博客。您很有可能希望將博客文章按特定類型分組。分類法是使您能夠進(jìn)行此類分組的方法。分類法通過在用戶瀏覽您的博客時使用戶體驗更輕松,更直接,從而幫助改善用戶體驗。

WordPress分類法的4種類型
WordPress中用于對文章進(jìn)行分組的兩個最常用的分類法是標(biāo)簽和分類。兩者都在同一分類法的總體保護(hù)下。
總體上,WordPress具有四個分類法,您可以在對博客文章進(jìn)行分組時使用。
在這里,我們將研究其中的每一個。
1.分類
分類(Categories)分類法使您可以將文章分為不同的層次類別。您可以通過兩種不同的方式對文章分類。
第一種方法,登錄WordPress儀表板,然后導(dǎo)航到“文章”>“分類目錄”。在這里,您將能夠定義分類并添加定義子分類和子分類。
使用分類對文章進(jìn)行分組的第二個方法,是在WordPress儀表板中,然后導(dǎo)航到“文章”>“寫文章”。當(dāng)您查看可視化編輯器旁邊的面板時,您會看到可以直接從該位置添加分類。
2.標(biāo)簽
標(biāo)簽與分類相似,它允許您對帖子進(jìn)行分組。區(qū)別在于標(biāo)簽沒有任何層次結(jié)構(gòu)。
標(biāo)簽(Tags)是將相關(guān)文章組合在一起的簡單參數(shù)。他們專注于博客內(nèi)容的細(xì)微細(xì)節(jié),而不是整個主題。
讓我們回到上面提到的音樂博客上。假設(shè)您要為音樂博客的內(nèi)容制作流派和子流派。最好的方法是對“ 90年代嘻哈明星”分類使用分類法。該分組分類法將支持層次結(jié)構(gòu)。
然后,要將您的內(nèi)容進(jìn)一步細(xì)分為子流派,您可以為內(nèi)容添加特定藝術(shù)家的標(biāo)簽,例如“ Snoop Dogg”和“ Ice Cube”。
關(guān)于使用標(biāo)簽對內(nèi)容進(jìn)行分組的最好的部分是,例如,分組將包括您的任何包含“ Snoop Dogg”標(biāo)簽的內(nèi)容。
換句話說,即使某個“ Snoop Dogg”內(nèi)容的分類與“ 90年代嘻哈之星”不在同一類別,可能屬于“Artists That Never Go Away”分類,但是它們都擁有相同的“ Snoop Dogg”標(biāo)簽。
要創(chuàng)建標(biāo)簽,請遵循與創(chuàng)建分類相似的路徑。可以通過導(dǎo)航到“文章”>“標(biāo)簽”,或在可視化編輯器旁邊的面板中完成此操作。
您還可以在這些區(qū)域中定義slug別名和描述。
重要的是要注意,定義分類對于所有博客文章都是必需的。但是,標(biāo)簽是完全可選的。
所有文章都必須至少具有一個分類才能發(fā)布。默認(rèn)情況下,如果您未定義特定分類,則WordPress會自動將文章放入“未分類”分類。
請記住,“未分類”分類仍然是一個分類。
其余兩個分類法對您的站點用戶不可見。盡管它們不經(jīng)常使用,但絕對值得一提并考慮如何在您的WordPress網(wǎng)站上使用它們。
3.鏈接分類
注:從WordPress 3.5開始,新安裝的WordPress后臺默認(rèn)已經(jīng)不再顯示“鏈接”這個內(nèi)容類型了。所以也就不會顯示鏈接分類了。具體可以看下《升級WordPress 3.5后 如何恢復(fù)鏈接管理功能》
這是一種WordPress分類法,允許您對鏈接進(jìn)行分類。
如果您是可以在博客文章上鏈接到許多內(nèi)部和外部資源的博客作者,那么您會發(fā)現(xiàn)鏈接分類的分類法非常有用。
4.文章格式分類法
post_format分類法可讓您根據(jù)視頻、音頻、標(biāo)準(zhǔn)等類型對文章進(jìn)行分類。
您將在WordPress可視編輯器旁邊直接看到此面板。
注:只有當(dāng)您的主題支持文章格式 post_format,才會在愛后臺看到相關(guān)的設(shè)置選項。
WordPress分類模板
當(dāng)站點訪問者單擊指向標(biāo)簽、分類或自定義分類法的超鏈接時,WordPress將顯示一個按時間順序相反的文章頁面,并按該特定分類法進(jìn)行過濾。
默認(rèn)情況下,顯示頁面是使用index.php模板文件生成的。這意味著您可以創(chuàng)建一個可選的模板文件,該文件將優(yōu)化和覆蓋index.php模板文件。
在這里,我們將解釋如何創(chuàng)建和使用這些分類模板。
分類模板層次結(jié)構(gòu)
模板層次結(jié)構(gòu)是WordPress用于確定其顯示文章順序的工具。
category.php、taxonomy.php和tag.php模板允許按分類法過濾的文章與未過濾的文章或使用不同分類法過濾的文章的查看方式有所不同。
請記住,“文章”是指任何文章類型,例如頁面、自定義文章類型或文章。基本上,它們是允許您定位特定WordPress分類法或分類法術(shù)語的文件。
這些分類模板文件的示例為:
- taxonomy-{taxonomy}-{term}.php
- taxonomy-{taxonomy}.php
- tag-{slug}.php
- tag-{id}.php
- category-{slug}.php
- category-{ID}.php
這可以專門用來格式化頁面上名為“新聞”的動物分類法中的所有文章,其外觀與其他文章中篩選的文章的外觀不同。
archive.php分類模板將提供最通用的控制形式。它為您的所有存檔提供了特定的布局。該頁面顯示您的文章列表。
分類層次結(jié)構(gòu)
當(dāng)涉及分類時,WordPress將查看category-{slug}.php文件。如果沒有,則WordPress然后嘗試為下一個順序?qū)哟谓Y(jié)構(gòu)級別找到文件,即category-{ID}.php,依此類推。
當(dāng)WordPress未找到archive.php模板文件或其他專用模板時,它將利用index.php自動恢復(fù)為默認(rèn)行為。
分類層次結(jié)構(gòu)如下所示:
- category-{slug}.php:例如,如果某個類別的slug名為“ pepperoni”,則WordPress將尋找一個名為category-pepperoni.php的文件。
- category-{ID}.php:例如,如果您分類的ID為“ 8”,則WordPress將查找名為category-9.php的文件。
- category.php
- archive.php
- index.php
標(biāo)簽層次結(jié)構(gòu)
有了標(biāo)簽,WordPress將尋找特定的tag-{slug}.php文件。如果WordPress無法找到它,它將在下一個層次級別中查找所需的文件,即tag-{id}.php等。
當(dāng)WordPress找不到任何archive.php模板文件或?qū)S媚0鍟r,它將使用index.php恢復(fù)為默認(rèn)行為。
標(biāo)簽層次結(jié)構(gòu)如下所示:
- tag-{slug}.php:例如,如果標(biāo)簽的標(biāo)簽名為“ drpepper”,則WordPress會查找名為tag.drpepper.php的文件。
- tag-{id}.php:例如,如果標(biāo)簽的ID為“ 3”,則WordPress將查找名為tag-3.php的文件。
- tag.php
- archive.php
- index.php
自定義分類法層次結(jié)構(gòu)
自定義分類層次結(jié)構(gòu)的工作原理與上面討論的標(biāo)簽和分類層次結(jié)構(gòu)非常相似。
WordPress首先會尋找taxonomy-{taxonomy}-{term}.php。如果找不到它,它將在層次結(jié)構(gòu)中查找下一個文件,該文件是taxonomy-{taxonomy}.php,依此類推。
當(dāng)WordPress找不到任何archive.php模板文件或?qū)S媚0鍟r,它將使用index.php恢復(fù)為默認(rèn)行為。
自定義分類法層次結(jié)構(gòu)如下:
- taxonomy-{taxonomy}-{term}.php:例如,如果您的分類法稱為“ taxes”,而同一分類法的術(shù)語(term)為“ statelevel”,則WordPress會查找名為taxonomy-taxes-statelevel.php的文件。 。
- taxonomy-{taxonomy}.php:例如,當(dāng)一個分類法稱為“ taxes”時,WordPress會查找名為taxonomy-taxes.php的文件。
- taxonomy.php
- archive.php
- index.php
如何創(chuàng)建分類模板文件
在您決定要使用分類法為內(nèi)容創(chuàng)建自定義設(shè)計后,您將從何處開始?
最好不要以空白文件開頭。相反,如果存在,只需復(fù)制層次結(jié)構(gòu)中的下一個文件。
假設(shè)已經(jīng)創(chuàng)建了archive.php,請創(chuàng)建一個副本并將其命名為category.php。然后修改該文件以滿足您的特定設(shè)計目標(biāo)和需求。
如果還沒有archive.php文件,則可以在主題中使用index.php文件,將其復(fù)制并用作起點。
創(chuàng)建任何分類模板文件時,可以遵循相同的步驟。只需使用category.php,index.php,tag.php或archive.php的副本作為起點。
如何向分類頁面添加文本
如果要將文本添加到分類頁面,將有幾種方法。
文章上方的靜態(tài)文本
當(dāng)您要在分類頁面上的文章列表之前顯示靜態(tài)文本(所有分類的所有文章的文本始終保持相同)時,將使用此方法。
打開文件。在模板文件的“循環(huán)”部分上方,只需插入以下代碼:
<p>
這是一些文本,將顯示在“分類”頁面的頂部。
</p>
文本將僅顯示在分類內(nèi)文章的存檔頁面上。
如何在某些分類頁面上放置不同的文本
如果您希望基于訪問者正在使用的特定分類頁面顯示不同的文本,請考慮將一些默認(rèn)文本直接添加到您的主要category.php文件中。
然后,您可以創(chuàng)建一些唯一的category-{slug}.php文件,每個文件都有自己的文本版本。問題在于這會創(chuàng)建很多主題文件。
要解決此問題,請使用條件標(biāo)簽。
在循環(huán)之后,將再次添加以下代碼:
<?php if (is_category('分類A')) : ?>
<p>這是分類A將顯示的文本</p>
<?php elseif (is_category('分類B')) : ?>
<p>這是分類B將顯示的文本</p>
<?php else : ?>
<p>其他分類將顯示的文本</p>
<?php endif; ?>
該代碼將:
- 檢查用戶是否訪問分類A。如果有,它將顯示文本的第一部分
- 檢查用戶是否訪問分類B,如果有,它將顯示文本的第二部分
- 如果用戶訪問的不是分類A和B,則顯示默認(rèn)文本
如何僅在存檔的第一頁上顯示文本
如果您有太多的文章無法容納在單個存檔頁面上,則該分類將分為幾頁。在這種情況下,您可能希望在結(jié)果的第一頁上為用戶顯示靜態(tài)文本。
為此,您需要使用PHP的if語句查找WordPress變量$paged的值。
這是您要粘貼在“循環(huán)”上方的內(nèi)容:
<?php if ( $paged < 2 ) : ?>
<p>顯示在存檔第一頁的文本</p>
<?php else : ?>
<?php endif; ?>
通過使用此代碼,代碼將詢問顯示的頁面是否是存檔的第一個頁面。啟用時,將顯示專用于第一頁的文本。
如果沒有,將顯示下一頁的文字。
自定義WordPress分類法
如果您查看WordPress可視編輯器的右側(cè),則會看到選項卡“分類”和“標(biāo)簽”。但是,如果您想擁有自己的自定義分類法,例如說“藝術(shù)家”,該怎么辦?
這是自定義WordPress分類法發(fā)揮作用的地方。此功能使您可以自定義所有分類法,以完全滿足您的開發(fā)需求。
例如,考慮一個小型鄰里餐廳的WordPress網(wǎng)站。與其使用稱為“分類”的通用分類法,不如使用定制分類法,說“開胃菜”和“主菜”,會更好嗎?
然后,每個自定義分類法可以進(jìn)一步細(xì)分為“ Pizza”和“ Pasta”等子分類。
相同的概念適用于標(biāo)簽分類法。您可以為“至尊”或“特惠”等商品添加標(biāo)簽。
創(chuàng)建自定義WordPress分類法
可以兩種不同方式創(chuàng)建自定義WordPress分類法。可以通過直接編碼或使用幾個不同的WordPress插件來創(chuàng)建它們。
使用插件創(chuàng)建自定義WordPress分類法
到目前為止,使用插件是創(chuàng)建自定義WordPress分類法的最簡單方法。實際上,您根本不需要太多技術(shù)技能就能做到。
用于創(chuàng)建自定義WordPress分類法的最佳插件是Pods和Custom Post Types UI。
我們將使用 Custom Post Types UI 插件逐步介紹如何創(chuàng)建自定義WordPress分類法。

- 下載,安裝并激活Custom Post Types UI 插件。
- 導(dǎo)航到CTP UI>添加/編輯分類法
- 在方框中填寫您要使用的WordPress分類法名稱。在這種情況下,假設(shè)我們使用“藝術(shù)家”作為類別。
- 選擇您要應(yīng)用新的WordPress分類法的文章類型。
- 單擊底部附近的“添加分類法”按鈕。
- 現(xiàn)在,導(dǎo)航至“文章”>“寫文章”,您將在可視化編輯器旁邊看到新的WordPress分類法。
您可能會注意到,您的新分類法是一個稱為“藝術(shù)家”的標(biāo)簽。但是,如果您要創(chuàng)建分類而不是標(biāo)簽怎么辦?答案比您想象的要簡單。
您需要做的只是向下滾動一點,然后將“分層 Hierarchical”更改為“true”。現(xiàn)在,您的自定義分類法是分類而不是標(biāo)簽。
通過將代碼添加到functions.php創(chuàng)建自定義WordPress分類法
如果您對代碼不熟悉,那么在創(chuàng)建自定義WordPress分類法時最好堅持使用插件。但是,如果您是喜歡弄虛作假的人,這將向您展示如何向網(wǎng)站的functions.php文件中添加正確的代碼。
作為高級WordPress用戶,您只需在WordPress主題目錄內(nèi)的WordPress functions.php文件中添加幾行代碼即可。
請注意,非分層分類法的代碼將與分層分類法不同。
在執(zhí)行此過程之前,請確保您正在運行WordPress備份插件,如果該過程中有任何中斷,您可以使用該插件立即恢復(fù)網(wǎng)站。
現(xiàn)在,下面顯示了分層分類法和非分層分類法所需的代碼示例。兩者最大的區(qū)別就在于 'hierarchical' 參數(shù),如果值為 true 則為分層,如果值為 false 則為非分層。
分層分類法(分類):示例代碼
/**
* 為文章類型 "book" 注冊新的分類法 genres
* https://developer.wordpress.org/reference/functions/register_taxonomy/
*/
function wpdocs_create_book_taxonomy_genre() {
// 注冊分層分類法 (類似于分類)
$labels = array(
'name' => _x( 'Genres', 'taxonomy general name', 'textdomain' ),
'singular_name' => _x( 'Genre', 'taxonomy singular name', 'textdomain' ),
'search_items' => __( 'Search Genres', 'textdomain' ),
'all_items' => __( 'All Genres', 'textdomain' ),
'parent_item' => __( 'Parent Genre', 'textdomain' ),
'parent_item_colon' => __( 'Parent Genre:', 'textdomain' ),
'edit_item' => __( 'Edit Genre', 'textdomain' ),
'update_item' => __( 'Update Genre', 'textdomain' ),
'add_new_item' => __( 'Add New Genre', 'textdomain' ),
'new_item_name' => __( 'New Genre Name', 'textdomain' ),
'menu_name' => __( 'Genre', 'textdomain' ),
);
$args = array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'genre' ),
);
register_taxonomy( 'genre', array( 'book' ), $args );
}
// 將函數(shù)掛載到 init 鉤子,讓代碼生效
add_action( 'init', 'wpdocs_create_book_taxonomy_genre', 0 );
非分層分類法(標(biāo)簽):示例代碼
/**
* 為文章類型 "book" 注冊新的分類法 writers
* https://developer.wordpress.org/reference/functions/register_taxonomy/
*/
function wpdocs_create_book_taxonomy_writer() {
// 注冊非分層的分類法 (類似于標(biāo)簽)
$labels = array(
'name' => _x( 'Writers', 'taxonomy general name', 'textdomain' ),
'singular_name' => _x( 'Writer', 'taxonomy singular name', 'textdomain' ),
'search_items' => __( 'Search Writers', 'textdomain' ),
'popular_items' => __( 'Popular Writers', 'textdomain' ),
'all_items' => __( 'All Writers', 'textdomain' ),
'parent_item' => null,
'parent_item_colon' => null,
'edit_item' => __( 'Edit Writer', 'textdomain' ),
'update_item' => __( 'Update Writer', 'textdomain' ),
'add_new_item' => __( 'Add New Writer', 'textdomain' ),
'new_item_name' => __( 'New Writer Name', 'textdomain' ),
'separate_items_with_commas' => __( 'Separate writers with commas', 'textdomain' ),
'add_or_remove_items' => __( 'Add or remove writers', 'textdomain' ),
'choose_from_most_used' => __( 'Choose from the most used writers', 'textdomain' ),
'not_found' => __( 'No writers found.', 'textdomain' ),
'menu_name' => __( 'Writers', 'textdomain' ),
);
$args = array(
'hierarchical' => false,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'update_count_callback' => '_update_post_term_count',
'query_var' => true,
'rewrite' => array( 'slug' => 'writer' ),
);
register_taxonomy( 'writer', 'book', $args );
}
// 將函數(shù)掛載到 init 鉤子,讓代碼生效
add_action( 'init', 'wpdocs_create_book_taxonomy_writer', 0 );
然后,當(dāng)您想在WordPress可視編輯器中顯示新的分類法時,請從編輯器中打開single.php并復(fù)制以下代碼:
the_terms( $post-ID, 'genre', 'Genres: ', ', ', ' ' );
如果整個過程正確完成,您現(xiàn)在將在可視編輯器中看到一個稱為“Genre”的新分類法。
如果要了解更多細(xì)節(jié),請看 https://developer.wordpress.org/reference/functions/register_taxonomy/
總結(jié):了解WordPress分類法
WordPress分類法是您用來對WordPress網(wǎng)站上的內(nèi)容進(jìn)行分組的工具。分類法可以用作內(nèi)容廣泛的主題的分類,而標(biāo)簽則可以用于這些主題中較小的細(xì)節(jié)。
您還可以通過使用一些特定的WordPress插件或通過將代碼添加到functions.php文件來創(chuàng)建自定義分類法。
當(dāng)您以正確的方式使用WordPress分類策略時,它將提高您網(wǎng)站的用戶體驗和整體性能。
推薦閱讀:
- 理解和利用 WordPress 中的分類法(Taxonomies)和分類項(Terms)
- WP_Query 參數(shù):分類法(Taxonomies)
- 如何注銷WordPress自定義文章類型和自定義分類法
- WordPress添加字段添加到自定義分類法項目(Taxonomy Terms)
- WordPress 自定義文章類型 介紹及實例解說(上)
- WordPress 自定義文章類型 介紹及實例解說(下)





大哥,有個問題。比如A分類的文章標(biāo)題前面顯示A圖標(biāo),B分類標(biāo)題前面顯示B圖標(biāo)。這個怎么做啊,純代碼的那種
文章很好,是不是因為太長大家沒耐心看了。。。。
?技術(shù)文有時候的確很長