Meta Box插件介绍
Meta Box是一个用来创建meta box的插件,不得不说这个名字起得真是有点太随意了,太大了,是一个失败的产品名字。。。
Meta Box的官网介绍说从2010年开始就专注于该插件的开发 ,目标是帮助开发者更快更好的处理WordPres中的自定义meta box ,不仅仅是一个插件,甚至可以说是一个帮助WordPress开发者处理数据的框架。
出品公司是eLightUp,一个越南的10人小团队,开发了不少的优质WordPress主题和插件。
公司官网:https://metabox.io/
下面看一下它和同类的竟品相比有什么特别之处:
安装和使用
安装步骤和其他插件无异,可以通过wordpress.org下载安装,或者如果你是PHP开发者,还可以通过PHP的包管理工具 composer 来进行引入 。
和别的插件不同的是,安装完成之后没有任何介绍说明或者配置页面。你需要手动在 php 文件中手动设置。下面是一个调用API的例子,将下面的实例代码加入主题的function.php文件中,这会设置四个自定义字段 name, gender, email, biography. :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | add_filter( 'rwmb_meta_boxes', 'prefix_meta_boxes' ); function prefix_meta_boxes( $meta_boxes ) { $meta_boxes[] = array( 'title' => 'Test Meta Box', 'fields' => array( array( 'id' => 'name', 'name' => 'Name', 'type' => 'text', ), array( 'id' => 'gender', 'name' => 'Gender', 'type' => 'radio', 'options' => array( 'm' => 'Male', 'f' => 'Female', ), ), array( 'id' => 'email', 'name' => 'Email', 'type' => 'email', ), array( 'id' => 'bio', 'name' => 'Biography', 'type' => 'textarea', ), ), ); return $meta_boxes; } |
调用API很简单。 把你需要的字段作为数组放入一个函数中。对于用过 Carbon Fields 的人来说, 这一步有点类似。一开始看起来可能比较麻烦,但是掌握之后就会显得很简单。
如果需要的字段比较多,手写起来还是很费事的,所以Meta Box也提供了一个在在线工具可以帮你快速生成代码, form generator .
把上面的代码加入到你的 functions.php 文件后,新建一个文章或者页面,在编辑器下方就可以看到出现了一个新的meta box,在其中输入必要的信息如下:
显示数据
在上一步中已经创建了一个meta box,可以在其中输入和保存相关数据了,那么要使用这些数据要怎么做呢?有两种方式:
通过函数来获取数据
Meta Box 提供了一个辅助函数rwb_meta()
用来获取指定field的值,本质上这个函数是对WordPress自身函数get_post_meta
的一层封装。如果想要在主题中显示出设置的自定义字段,使用函数的用法如下:
1 2 | $value = rwmb_meta( $field_id ); echo $value; |
通过短码获取
除了使用函数的方式之外,Meta Box还提供了一个短码rwmb_meta
可以方便的在日志中调用自定义字段。 用法如下:
1 | [rwmb_meta meta_key="field_id" post_id="15" ...] |
Rest API
Meta Box 还提供了一个辅助插件 来扩展 WordPress自身的rest API. 不像同类其他的插件,你不需要做任何设置,安装之后就可以像原生的restAPI一样来获取自定义字段.
包括文件:
MB Admin Columns 1.4.2
MB Blocks 1.0.13
MB Custom Table 1.1.8
MB Frontend Submission 2.0.6
MB Revision 1.3.3
MB Settings Page 1.3.5
MB Term Meta 1.2.8
MB User Meta 1.2.5
MB User Profile 1.3.0
Meta Box Builder 3.1.0
Meta Box Columns 1.2.5
Meta Box Conditional Logic 1.6.7
Meta Box Geolocation 1.2.5
Meta Box Group 1.3.6
Meta Box Include Exclude 1.0.10
Meta Box Show Hide 1.3.0
Meta Box Tabs 1.1.4
Meta Box Template 1.1.0
Meta Box Tooltip 1.1.1