WordPress添加字段添加到自定义分类法项目

wordpress 对几乎所有内容都提供了元字段支持:文章类型、用户、评论、多站点网络中的博客以及自定义分类法项目/分类法术语(Taxonomy Terms)。

这里我们解释一下专有名词 Taxonomy Terms,中文翻译【分类法术语】有些不好理解,其实它所指的是某一种分类法下的一个分类项。比如文章的分类目录和标签,就是两种默认的分类法,它们中的任何一个分类项、标签都是 Taxonomy Term。WordPress 还允许我们注册新的分类法,所以 Taxonomy Terms 也包括这个自定义分类法的分类项目。下面的例子中,我们将为标签 Tags 添加一个新的字段 Text Field。

1.将字段添加到“添加新术语”界面

要在“添加新 XX”界面上添加字段,我们将使用动作挂钩{Taxonomy}_add_form_fields,我们要做的就是如何显示字段。

  1. add_action( 'post_tag_add_form_fields', 'misha_add_term_fields' );
  2. 
    
  3. function misha_add_term_fields( $taxonomy ) {
  4. 
    
  5. 	echo '<div class="form-field">
  6. 	<label for="misha-text">Text Field</label>
  7. 	<input type="text" name="misha-text" id="misha-text" />
  8. 	<p>Field description may go here.</p>
  9. 	</div>';
  10. 
    
  11. }

  • 我决定在post_tag分类法中添加一个字段,因此我的操作钩子是post_tag_add_form_fields。但是您可以在此处使用任何自定义分类法名称。
  • $taxonomy函数内部提供了分类法名称作为变量。
  • 不要忘记在字段容器的div 添加 form-field类。

我们可以使用 post_tag_add_form_fields 操作钩子将字段添加到“添加新标签”页面。

2.将字段添加到“编辑术语”界面

与本教程的前一部分非常相似,主要区别在于,如果出现元数据,则必须填充该字段。让我们从一个动作钩子开始{Taxonomy}_edit_form_fields。对于 post_tag 分类法,它将是 post_tag_edit_form_fields,如果是自定义分类法,就需要修改前面的部分,比如 misha_taxonomy_edit_form_fields。

  1. add_action( 'post_tag_edit_form_fields', 'misha_edit_term_fields', 10, 2 );
  2. 
    
  3. function misha_edit_term_fields( $term, $taxonomy ) {
  4. 
    
  5. 	$value = get_term_meta( $term->term_id, 'misha-text', true );
  6. 
    
  7. 	echo '<tr class="form-field">
  8. 	<th>
  9. 		<label for="misha-text">Text Field</label>
  10. 	</th>
  11. 	<td>
  12. 		<input name="misha-text" id="misha-text" type="text" value="' . esc_attr( $value ) .'" />
  13. 		<p class="description">Field description may go here.</p>
  14. 	</td>
  15. 	</tr>';
  16. 
    
  17. }
  • 函数具有两个参数:$term–是当前编辑的术语对象,$taxonomy–分类法名称。
  • 我们在get_term_meta()这里使用函数来获取术语元数据。
  • 不要忘记转义从数据库中获取的数据。

WordPress添加字段添加到自定义分类法项目-云模板我们可以使用 post_tag_edit_form_fields 动作挂钩将字段添加到“编辑标签”页面。

3.保存字段

最后一步是将字段值保存到数据库中。我们还有两个动作钩子- created_{Taxonomy}和 edited_{Taxonomy}。幸运的是,我们可以将相同的回调函数连接到这两个函数。

  1. add_action( 'created_post_tag', 'misha_save_term_fields' );
  2. add_action( 'edited_post_tag', 'misha_save_term_fields' );
  3. 
    
  4. function misha_save_term_fields( $term_id ) {
  5. 
    
  6. 	update_term_meta(
  7. 		$term_id,
  8. 		'misha-text',
  9. 		sanitize_text_field( $_POST[ 'misha-text' ] )
  10. 	);
  11. 
    
  12. }

到这里就完成啦!

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/81170

WordPress安全防护插件
服务项目 服务内容 收费标准(元)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

电子邮件地址不会被公开。 必填项已用*标注