纯代码非插件实现分类目录和标签添加新的自定义字段 – WordPress教程

王小优
王小优
王小优
231
文章
0
评论
2015年5月23日
评论
6,556 4663字阅读15分32秒

如果需要在主题中调用分类自定义字段的值,可以使用以下代码:WordPress的分类目录默认只有名称、别名、父节点和描述这几个字段,有时候我们需要给分类目录拓展一些信息,如想添加一个分类封面图、给分类指定keywords和description等等,这个时候我们就得给分类目录添加自定义字段(或者叫自定义栏目)。今天将给你介绍纯代码非插件给WordPress的分类目录和标签添加新的自定义字段。

纯代码非插件实现分类目录和标签添加新的自定义字段 – WordPress教程

下图是WordPress后台的分类目录编辑页面,有心的读者可能注意到,这里多了个分类封面的输入框,这个就是我们所说的给分类目录添加的自定义字段。

纯代码非插件实现分类目录和标签添加新的自定义字段 – WordPress教程

分类加字段

将下面的PHP代码复制粘贴到你当前主题的function.php中即可。以下代码只给分类目录添加自定义字段,如果需要给标签添加自定义字段,请看文章后面的讲解。

这部分代码包括4大块:调用WordPress的action;新建分类页面添加自定义字段输入框;编辑分类页面添加自定义字段输入框;保存自定义字段的数据。这里只创建一个分类封面的URL输入框。如果要添加更多的自定义字段,也只需在代码中几个TODO的位置上追加一些代码而已,代码中也给出添加keywords字段的示例。

所有自定义字段保存在WordPress的_options表中,无需建新的表。

此处为隐藏的内容
发表评论并刷新,方可查看

如果需要在主题中调用分类自定义字段的值,可以使用以下代码:

  1. // $term_id 是当前分类的id,自行想办法获取
  2. $term_id = $term->term_id;
  3. // 获取已保存的option
  4. $term_meta = get_option( "ludou_taxonomy_$term_id" );
  5. // 取值
  6. $tax_image = $term_meta['tax_image']  $term_meta['tax_image'] : '';

标签加字段

给标签添加自定义字段的原理是一样的,只需把上面第一部分代码中的action修改一下即可,将以上代码中的:

  1. // 新建分类页面添加自定义字段输入框
  2.  add_action( 'category_add_form_fields', array( $this, 'add_tax_image_field' ) );
  3. //编辑分类页面添加自定义字段输入框
  4.  add_action( 'category_edit_form_fields', array( $this, 'edit_tax_image_field' ) );
  5. // 保存自定义字段数据
  6.  add_action( 'edited_category', array( $this, 'save_tax_meta' ), 10, 2 );
  7.  add_action( 'create_category', array( $this, 'save_tax_meta' ), 10, 2 );

改成:

  1. // 其实就是把 category 改成 post_tag 即可
  2. add_action( 'post_tag_add_form_fields', array( $this, 'add_tax_image_field' ) );
  3. add_action( 'post_tag_edit_form_fields', array( $this, 'edit_tax_image_field' ) );
  4. add_action( 'edited_post_tag', array( $this, 'save_tax_meta' ), 10, 2 );
  5. add_action( 'create_post_tag', array( $this, 'save_tax_meta' ), 10, 2 );

另外,也可以同时给分类目录和标签添加自定义字段:

    1. // 分类
    2. add_action( 'category_add_form_fields', array( $this, 'add_tax_image_field' ) );
    3. add_action( 'category_edit_form_fields', array( $this, 'edit_tax_image_field' ) );
    4. add_action( 'edited_category', array( $this, 'save_tax_meta' ), 10, 2 );
    5. add_action( 'create_category', array( $this, 'save_tax_meta' ), 10, 2 );
    6. // 标签
    7. add_action( 'post_tag_add_form_fields', array( $this, 'add_tax_image_field' ) );
    8. add_action( 'post_tag_edit_form_fields', array( $this, 'edit_tax_image_field' ) );
    9. add_action( 'edited_post_tag', array( $this, 'save_tax_meta' ), 10, 2 );
    10. add_action( 'create_post_tag', array( $this, 'save_tax_meta' ), 10, 2 );
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如果喜欢,请打赏支持本站,谢谢大家!
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微博
  • 微博扫一扫
  • weinxin
王小优
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: