主机迷主机迷

WordPress 自定义字段插件

Advanced Custom Fields

下载地址:https://wordpress.org/plugins/advanced-custom-fields
安装启用后,在后台左边新增了一个菜单叫字段。
基本情况:

  1. 新建一个字段组,组里面新建1到 n 个字段,然后将字段组关联到POST上(这里的关联规则相当丰富)
  2. “选项”的“样式”设置有“无MetaBox”和“标准MetaBox”,没搞明白区别
  3. 修改文章时在文章编辑框下方就可以看到自定义的字段了,不需要输入字段名,这个比默认的自定义字段省事。
  4. 保存后数据会存放到wp_postmeta表,并没有在wp_posts表中新增字段
  5. 一篇文章的一个字段在wp_postmeta表中会对应两条记录,而且 key为中文,这个不太友好
  6. 使用后新建的字段会出现在 默认自定义字段的下拉列表里,而且一个字段在下拉列表里出现两项,一项是唯一 ID,另外一项是中文名,这就更不友好了,不光如此,发现还带来了position、layout、hide_on_screen、rule等字段。发现自定义字段的下拉列表的显示逻辑是wp_postmeta不以下划线开头的所有meta_key

select distinct meta_key from wp_postmeta t where t.meta_key not like '\_%' //下划线要转码

  1. Advanced Custom Fields是这样保存字段组基本信息的,在文章表中建立一条标题为字段组名字、内容为空的记录,该字段组的详细配置数据存放在wp_postmeta表,通过post_id关联。

参考:http://www.wpdaxue.com/advanced-custom-fields.html

Simple Fields

下载地址:https://wordpress.org/plugins/simple-fields/
安装启用后,设置菜单在后台的设置-Simple Fields
同样,保存后文章的数据会存放到wp_postmeta表,并没有在wp_posts表中新增字段。
基本情况:

  1. 新增字段组,增加字段。字段的基本属性就填两项就可以了,一个是 name,可以填中文,这个是在编辑文章时显示的字段名;另外一个是 slug,这个是前台获取该字段的值是使用的,这个 slug 名字可以随意修改(当然前台取值时要跟着修改),因为文章的字段在wp_postmeta表是以_simple_fields_fieldGroupID_1_fieldID_2_numInSet_0这样的方式命名的。
  2. 需要新建一个关联器,同时还需要设置文章的默认关联器才能生效。这个Simple Fields的关联规则不如Advanced Custom Fields强大,Simple Fields只能对Posts、Pages、Media这3种类型进行设置。
  3. 使用Simple Fields创建的字段不会出现在自带自定义字段的下拉列表里,这个地方要比Advanced Custom Fields
  4. 假定使用插件自定义的字段数量为 n,目测使用wp_postmeta后文章在wp_postmeta表中的自定义数据的字段个数是 n+3;而Advanced Custom Fields是 2n
  5. Simple Fields的自定义字段的值允许为空
  6. 修改某篇文章的自定义字段时,Simple Fields的处理逻辑是先全部删除再全部重建
  7. 在前台取值的用法

    // To get values from a field simple use the function simple_fields_value() like this:
    $field_value = simple_fields_value("slug_of_field");
    // You can even pass meny slugs to retrieve array of values:
    $field_value = simple_fields_value("slug_of_field1, another_slug, and_a_third_slug");

  8. 弊端:不像自带的自定义字段,不管填不填写,这个每篇文章都会在wp_postmeta表增加数据,如果文章多,会造成wp_postmeta表迅速膨胀。

参考:
http://simple-fields.com/documentation/getting-started/tutorial/

Smart Custom Fields

下载地址:https://srd.wordpress.org/plugins/smart-custom-fields/

  1. 创建的字段组必选关联文章类型例如POST才能生效,在右下角勾选文章类型
  2. 字段组配置信息的保存方式和Advanced Custom Fields类似,都是在 wp_posts 文章表中建立一条标题为字段组名字、内容为空的记录,该字段组的详细配置数据存放在wp_postmeta表,通过post_id关联
  3. 会导致 wp 默认自定义字段的下拉列表中出现smart-cf-setting、smart-cf-condition-post-ids、smart-cf-condition等字段
  4. 文章自定义字段wp_postmeta表中的 key 是按字段的实际名字保存的,因此字段名字不能像Simple Fields那样可以随意修改

参考:
https://www.imd-net.com/blog/2014/12/15-210937/

综合结论

Simple Fields不会污染 WordPress 自带自定义字段下拉菜单,且在 wp_postmeta 表的数据比Advanced Custom Fields少一半,还可以随意修改字段名字而不会影响已有数据,另外考虑到Simple Fields对我来说功能够用,暂时不需要Advanced Custom Fields那么强大的自定义功能,Smart Custom Fields既没有Advanced Custom Fields功能强大,又不具备Simple Fields的优点,因此Simple Fields是我的首选。

转载请注明出处 | 当前页面:主机迷 » WordPress 自定义字段插件

评论

  • 请输入 1 + 7 = ? 的计算结果: