ButterBean是一个WordPress自定义字段管理插件,它可以帮助我们更好地组织自定义字段是选项卡的许多方式。在一个MetaBox中,当某个文章类型中有大量自定义字段时,这个功能特别有用,它可以帮助我们使自定义字段输入界面更加符合逻辑,操作更加方便。WooCommerce是一个流行的WordPress电子商务插件,它是一个以类似方式实现的商品字段管理接口。ButterBean可以达到以下效果。
使用ButterBean插件安装ButterBean插件的效果截图。如果我们不使用butterbean作为标准插件,我们需要将Butterbean文件夹复制到主题目录,然后加载butterbean.php文件,如下所示。
add_action( ‘plugins_loaded ‘,’ th _ load ‘);函数th _ load(){ require _ once(‘ path/to/butter bean/butter bean . PHP ‘);}注册ButterBean回调安装ButterBean插件后,我们可以使用butterbean_register action hook注册自定义管理器、节、控件、设置。回调函数有两个对象:$butterbean和current $post_type。
add _ action(‘ butter bean _ register ‘,’ th_register ‘,10,2);Function _ register ($ butter bean,$ post _ type){//如果不是我们需要的文章类型,就不要执行if (‘your_post_type ‘!== $post_type)返回;//在此注册管理器、节、控件和设置}创建管理器管理器。在ButterBean中,管理器是多个部分和控件的组合,管理器是一个元盒。我们可以同时注册多个管理器,代码如下:
$ butter bean-& gt;register_manager(‘example ‘,array(‘ label ‘ = & gt;Esc_html__ (‘sample data ‘,’ your-textdomain ‘),’ post _ type’ = >: ‘post ‘,’ context ‘ = & gt普通’,’优先级’ = & gt高’));$ manager = $ butter bean-& gt;get _ manager(‘ example ‘);创建自定义区域区域区域是一些控件的组合。显示时,它是一个选项卡。我们可以为每个标签添加自定义标签、描述和图标。
$ manager-& gt;register_section(‘section_1 ‘,array(‘ label ‘ = & gt;Esc_html__ (‘dataset 1 ‘,’ your-textdomain ‘),’ icon ‘ = >:’ dashicons-admin-generic ‘);创建自定义控制器控件控件是一个自定义字段输入表单项。控制器出现在选项卡中,用于输入自定义字段数据。控件有很多表单类型,从简单的文本框到WordPress媒体输入框,类型足够全面。
如果默认控件类型不是我们所需要的,我们也可以通过扩展ButterBean_Control类来创建一个自定义控件类型。
$ manager-& gt;register_control(‘abc_xyz ‘,//与以下设置数组同名(‘ type’ = >: ‘text ‘,’ section ‘ = & gtsection_1 ‘,’ label ‘ = & gtEsc_html__ (‘text1 ‘,’ your-textdomain ‘),’ attr ‘ = >:array(‘ class ‘ = & gt;wide fat’))));创建自定义设置设置定义如何保存数据。默认情况下,设置的名称是自定义字段键。我们可以在前端使用WordPress标准的get_post_meta函数来获取保存的值。在保存数据之前,不要忘记使用sanitize_callback函数来验证和净化数据。
$ manager-& gt;register_setting(‘abc_xyz ‘,//与上面的控件数组(‘ array(‘ sanitize _ callback ‘ = >;’同名WP _ filter _ no html _ kses ‘));如果你正在开发一个复杂的WordPress主题或者插件,并且有很多自定义字段需要管理,你可以尝试使用ButterBean插件来优化自定义字段输入界面。相信用户体验会有很大提升。