WordPress Taxonomies是否支持Meta Key Name与Meta Key Value?附示例疑问
嘿,这个问题问得很到位!咱们来把这事说清楚:
WordPress分类法术语的元数据支持
首先明确核心结论:WordPress的分类法术语(比如你说的comics这类属于books分类法的具体术语)是完全支持添加自定义元数据(Meta Key/Value)的,但你举的例子里的理解有点偏差,咱们先纠正这个点。
关于你例子的纠正
你提到的“分类法对应的元数据键为_books,值为comics”是不对的:
books是分类法(Taxonomy),相当于一个“分类体系”;comics是这个体系下的一个术语(Term),也就是具体的分类项。- 元数据是依附在术语上的,而不是分类法本身。你可以给
comics这个术语添加任意的元键和值,比如键为book_genre,值为superhero;或者键为publisher,值为Marvel。
如何给术语添加/管理元数据
1. 在后台术语编辑页添加可视化字段
如果想让管理员在后台编辑books分类法的术语时,能直接填写元数据,可以用WordPress的钩子来实现。比如添加一个“出版社”字段:
// 在术语添加页面显示自定义字段 add_action('books_add_form_fields', 'add_books_term_meta_field'); function add_books_term_meta_field() { ?> <div class="form-field"> <label for="book_publisher"><?php _e('Book Publisher', 'text-domain'); ?></label> <input type="text" name="book_publisher" id="book_publisher" value=""> <p class="description"><?php _e('Enter the publisher for this book category.', 'text-domain'); ?></p> </div> <?php } // 保存术语的自定义元数据 add_action('created_books', 'save_books_term_meta'); function save_books_term_meta($term_id) { if (isset($_POST['book_publisher'])) { update_term_meta($term_id, 'book_publisher', sanitize_text_field($_POST['book_publisher'])); } }
2. 代码层面手动操作元数据
如果你需要在主题或插件里直接添加/获取术语元数据,可以用这两个核心函数:
- 添加/更新元数据:用
update_term_meta(),比如给ID为5的comics术语添加出版社信息:
update_term_meta(5, 'book_publisher', 'DC Comics');
- 获取元数据:用
get_term_meta(),拿到刚才存的值:
$publisher = get_term_meta(5, 'book_publisher', true); // 输出结果:DC Comics
额外注意点
- 分类法本身(比如
books这个体系)没有原生的元数据存储,但如果确实需要给分类法本身加配置信息,你可以用update_option()函数把数据存在WordPress的选项表里,比如update_option('books_taxonomy_settings', $your_config_data)。 - 元键名可以自定义,不一定需要加下划线。加下划线通常是用来标识“私有元数据”(不会在后台的自定义字段界面显示),但这不是强制要求。
内容的提问来源于stack exchange,提问作者Joe Bloggs
相关产品推荐
相关产品推荐

