問題描述
我對 WordPress 來説是相當新鮮的,每天都會遇到新的東西 – 一個是在 get_terms 發生的時候,注意到它與 get_category 基本相同。
任何特定的原因使用一個或另一個?有沒有我失蹤的東西?
最佳解決方案
當你潛入 WordPress,你會發現 WordPress 有很多包裝功能。例如,add_theme_page 只是 add_submenu_page 的包裝器。這當然不是唯一的例子 (實際上,add_submenu_page 本身有一堆包裝器) 。如果你看看 get_categories()的源碼,你會看到它也是 get_terms()的封裝 (我剛剛學到了我自己,所以謝謝!) 。
我發現 taxonomy-related 功能是最複雜的一些功能。他們中的很多人都非常相似,並且返回類似的東西,差別很小。在這種情況下,get_terms()具有 name__like 參數,get_category()沒有。也可能有其他一些差異。
作為個人喜好,我儘量使用 get_terms()。在某些情況下,像 add_theme_page 這是推薦的功能 (大概是這樣 WordPress 可以改變主題頁面並保持該功能的工作),但在其他情況下,像這樣,我不認為它有很大的不同。如果沒有別的,熟悉程度可以幫助我更快地做更多的事情。但是,返回 HTML 列表 (如 wp_list_categories()) 的某些功能有時可用。
次佳解決方案
get_terms() 和 get_categories() 之間最重要的 (而非非常明顯的) 差異之一是 get_categories() 是 get_terms(‘category’) 的包裝功能。這意味着您無法使用 get_categories() 獲得自定義分類,並且必須使用 get_terms() 。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。