在 WordPress 中,get_taxonomy() 函数用于获取指定分类法(taxonomy)的详细信息。这个函数返回一个 WP_Taxonomy 对象,其中包含分类法的各种属性和设置。下面详细说明 get_taxonomy() 的使用方法及其输出结果。
1. 函数说明
函数名: get_taxonomy()
参数:
- $taxonomy: 分类法名称(字符串)。
返回值: 一个 WP_Taxonomy 对象,如果指定的分类法不存在,则返回 false。
2. 输出内容
get_taxonomy() 返回的 WP_Taxonomy 对象包含多个属性,这些属性定义了分类法的行为和显示方式。以下是一些常见的属性及其含义:
- name: 分类法的名称。
- 类型: 字符串
- 示例: "category"
- label: 分类法的通用标签。
- 类型: 字符串
- 示例: "Categories"
- labels: 包含分类法各个标签的对象。
- 类型: stdClass
- 示例:
stdClass Object
(
[name] => Categories
[singular_name] => Category
[search_items] => Search Categories
[popular_items] => Popular Categories
[all_items] => All Categories
[parent_item] => Parent Category
[parent_item_colon] => Parent Category:
[edit_item] => Edit Category
[view_item] => View Category
[update_item] => Update Category
[add_new_item] => Add New Category
[new_item_name] => New Category Name
[separate_items_with_commas] => Separate categories with commas
[add_or_remove_items] => Add or remove categories
[choose_from_most_used] => Choose from the most used categories
[menu_name] => Categories
[not_found] => No categories found.
[no_terms] => No categories
[items_list_navigation] => Categories list navigation
[items_list] => Categories list
)
- public: 是否公开显示分类法。
- 类型: 布尔值
- 示例: true
- hierarchical: 分类法是否分层(如类别)。
- 类型: 布尔值
- 示例: true
- show_ui: 是否在管理界面中显示分类法的 UI。
- 类型: 布尔值
- 示例: true
- show_in_menu: 是否在管理菜单中显示分类法。
- 类型: 布尔值或字符串(菜单 slug)
- 示例: true
- show_tagcloud: 是否在标签云中显示分类法。
- 类型: 布尔值
- 示例: true
- show_in_quick_edit: 是否在快速编辑中显示分类法。
- 类型: 布尔值
- 示例: true
- show_admin_column: 是否在管理列中显示分类法。
- 类型: 布尔值
- 示例: true
- meta_box_cb: 自定义元框回调函数。
- 类型: 回调函数或布尔值
- 示例: null
- capabilities: 分类法的权限。
- 类型: 数组
- 示例:
Array
(
[manage_terms] => manage_categories
[edit_terms] => manage_categories
[delete_terms] => manage_categories
[assign_terms] => edit_posts
)
- rewrite: 重写规则设置。
- 类型: 数组或布尔值
- 示例:
Array
(
[slug] => category
[with_front] => 1
[hierarchical] => 1
)
- query_var: 查询变量名称。
- 类型: 字符串或布尔值
- 示例: "category_name"
- update_count_callback: 更新计数的回调函数。
- 类型: 回调函数或布尔值
- 示例: '_update_post_term_count'
3. 示例代码
以下是一个示例,展示如何使用 get_taxonomy() 获取并输出分类法的详细信息:
// 获取分类法对象
$taxonomy = get_taxonomy('category');
// 检查分类法是否存在
if ($taxonomy) {
// 输出分类法的名称
echo "<strong>Name:</strong> " . $taxonomy->name . "<br>";
// 输出分类法的通用标签
echo "<strong>Label:</strong> " . $taxonomy->label . "<br>";
// 输出分类法的各个标签
echo "<strong>Labels:</strong><br>";
foreach ($taxonomy->labels as $key => $label) {
echo " <strong>$key:</strong> $label<br>";
}
// 输出其他属性
echo "<strong>Hierarchical:</strong> " . ($taxonomy->hierarchical ? 'true' : 'false') . "<br>";
echo "<strong>Public:</strong> " . ($taxonomy->public ? 'true' : 'false') . "<br>";
echo "<strong>Show UI:</strong> " . ($taxonomy->show_ui ? 'true' : 'false') . "<br>";
echo "<strong>Show in Menu:</strong> " . ($taxonomy->show_in_menu ? 'true' : 'false') . "<br>";
echo "<strong>Show Tagcloud:</strong> " . ($taxonomy->show_tagcloud ? 'true' : 'false') . "<br>";
echo "<strong>Show in Quick Edit:</strong> " . ($taxonomy->show_in_quick_edit ? 'true' : 'false') . "<br>";
echo "<strong>Show Admin Column:</strong> " . ($taxonomy->show_admin_column ? 'true' : 'false') . "<br>";
echo "<strong>Meta Box Callback:</strong> " . ($taxonomy->meta_box_cb ? $taxonomy->meta_box_cb : 'null') . "<br>";
echo "<strong>Capabilities:</strong><br>";
foreach ($taxonomy->capabilities as $cap_key => $cap_value) {
echo " <strong>$cap_key:</strong> $cap_value<br>";
}
echo "<strong>Rewrite:</strong><br>";
foreach ($taxonomy->rewrite as $rewrite_key => $rewrite_value) {
echo " <strong>$rewrite_key:</strong> $rewrite_value<br>";
}
echo "<strong>Query Var:</strong> " . ($taxonomy->query_var ? $taxonomy->query_var : 'false') . "<br>";
echo "<strong>Update Count Callback:</strong> " . ($taxonomy->update_count_callback ? $taxonomy->update_count_callback : 'null') . "<br>";
} else {
echo "Taxonomy not found.";
}
4. 总结
get_taxonomy() 是一个非常有用的函数,可以帮助开发者获取分类法的详细信息。通过这些信息,可以更好地理解和自定义分类法的行为和显示方式。这对于开发复杂的 WordPress 插件或主题非常有帮助。