前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Meta Box:一个被名字耽误的强大的WordPress自定义字段插件

Meta Box:一个被名字耽误的强大的WordPress自定义字段插件

作者头像
丘壑
发布2019-04-17 16:07:25
3.9K0
发布2019-04-17 16:07:25
举报
文章被收录于专栏:一丘一壑一丘一壑

meta这个词根本身在英语中的意思就有很多,计算机科学中的翻译,meta通常翻译成元:

meta-data:data about data, 元数据

meta model:model about model,元模型

meta-合成词代表的东西可以归结为某种额外之物,伴随着原始对象的更高需求而产生 典型的HTML meta标签是HTML文档的补充(加强) meta-programming(元编程)在做的事是提升编程语言的能力 统计学中的meta-analysis ,对数据事后的量化分析作者:幽灵代笔 来源:知乎

WordPress中的Meta Box是什么?

When a user edits a post, the edit screen is composed of several default boxes: Editor, Publish, Categories, Tags, etc. These boxes are meta boxes. Plugins can add custom meta boxes to an edit screen of any post type.

根据官网的介绍,meta box是WordPress后台编辑界面上的一些功能框,比如编辑器、发布按钮、目录/Tag选择框等等都叫做meta box。总体来说,meta box就是WorPress管理后台界面的一部分,有自己的信息区域,可以接收用户输入。插件和主题可以通过使用add_meta_box()函数可以在 WordPress 后台的编辑区加入自定义meta box。

add_meta_box 是 WordPress 2.5版本加入的一个高级函数。能用到它,说明你现在正在折腾一个你自己的主题、插件,甚至是在折腾 WordPress 后台了,是一个高阶的WordPress玩家了。虽然说可以通过主题直接使用add_meta_box函数,但是更多的情况下还是在插件中来使用,比如注明的WordPress超级自定义字段插件:Advanced Custom Fields 。在之前的文章中也有介绍过这个插件的使用案例:在Genesis主题中手动添加WordPress相关文章。类似的插件还有 Carbon Fields 等等。

本文的重点不是介绍add_meta_box函数,也不是Advanced Custom Fields。本文的主角是一个叫做Meta Box的WordPress插件

Meta Box插件介绍

Meta Box是一个用来创建meta box的插件,不得不说这个名字起得真是有点太随意了,太大了,是一个失败的产品名字。。。

Meta Box的官网介绍说从2010年开始就专注于该插件的开发 ,目标是帮助开发者更快更好的处理WordPres中的自定义meta box ,不仅仅是一个插件,甚至可以说是一个帮助WordPress开发者处理数据的框架。

出品公司是eLightUp,一个越南的10人小团队,开发了不少的优质WordPress主题和插件。

下面看一下它和同类的竟品相比有什么特别之处

安装和使用

安装步骤和其他插件无异,可以通过wordpress.org下载安装,或者如果你是PHP开发者,还可以通过PHP的包管理工具 composer 来进行引入 。

和别的插件不同的是,安装完成之后没有任何介绍说明或者配置页面。你需要手动在 php 文件中手动设置。下面是一个调用API的例子,将下面的实例代码加入主题的function.php文件中,这会设置四个自定义字段 name, gender, email, biography. :

代码语言:javascript
复制
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,在其中输入必要的信息如下:

test meta box

显示数据

在上一步中已经创建了一个meta box,可以在其中输入和保存相关数据了,那么要使用这些数据要怎么做呢?有两种方式:

通过函数来获取数据

Meta Box 提供了一个辅助函数rwb_meta()用来获取指定field的值,本质上这个函数是对WordPress自身函数get_post_meta的一层封装。如果想要在主题中显示出设置的自定义字段,使用函数的用法如下:

代码语言:javascript
复制
$value = rwmb_meta( $field_id );
echo $value;
通过短码获取

除了使用函数的方式之外,Meta Box还提供了一个短码rwmb_meta可以方便的在日志中调用自定义字段。 用法如下:

代码语言:javascript
复制
[rwmb_meta meta_key="field_id" post_id="15" ...]

支持的字段类型和扩展插件

Meta Box支持多达46中字段类型,应有尽有 ,基本可以满足所有场景的需求,完整列表如下:

其中对开发者来说,button和HTML字段会特别有用。将自定义动作绑定到button可以实现各种功能,比如一键发布到其他网站、拼写检查、字数统计等等。

HTML字段可以使用HTML代码,所以开发者可以用它来加入一些带有格式的引导介绍。或者在开发插件时可以引入 MetaBox 用来显示一些通知。

除此之外 , 通过Meta Box提供的API,你也可以创建自己需要的特殊字段

Meta Box还有很多丰富的高级扩展,结合起来使用,基本上可以实现各种需求。这也是Meta Box 想要秉持的开发哲学:核心代码轻量化,附加功能在需要时再安装。

API

上文提到Meta Box提供了一个简单的函数用来在前端获取数据 rwmb_meta($name).

官网的文档中也详细描述了可用的过滤器和动作。通过这些可以在meta box创建之前或之后挂载一些操作,比如在存入数据库之前对数据做一些修改,或者对metabox做一些样式修改等等。扩展性非常强。

文档

官网文档写的非常详细,组织清晰,以上所有字段都有详细解释和代码实例。 并且除了文档之外,还有很好的教程和使用指导,非常值得一看。

Rest API

Meta Box 还提供了一个辅助插件 来扩展 WordPress自身的rest API. 不像同类其他的插件,你不需要做任何设置,安装之后就可以像原生的restAPI一样来获取自定义字段.

价格

Meta Box 提供免费版和付费的高级功能包,基本上免费的已经很强大够用了。

Core Bundle

Developer Bundle

Lifetime Bundle

$79

$149

$349

总结

Meta Box 在自定义字段上的功能基本上涵盖了所有场景,能想到的几乎都能做到,某些方面甚至比同类插件做的更好,但是可能会需要引入一些它自身的其他插件来进行配合。

官网有完善的文档和详细的教程,开发者在 Github 上也比较活跃,但是因为名字其的不好,所以比较难搜到更多资料。

值得推荐。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • WordPress中的Meta Box是什么?
  • Meta Box插件介绍
    • 安装和使用
      • 显示数据
        • 通过函数来获取数据
        • 通过短码获取
      • 支持的字段类型和扩展插件
        • API
          • 文档
            • Rest API
            • 价格
            • 总结
            相关产品与服务
            网站建设
            网站建设(Website Design Service,WDS),是帮助您快速搭建企业网站的服务。通过自助模板建站工具及专业设计服务,无需了解代码技术,即可自由拖拽模块,可视化完成网站管理。全功能管理后台操作方便,一次更新,数据多端同步,省时省心。使用网站建设服务,您无需维持技术和设计师团队,即可快速实现网站上线,达到企业数字化转型的目的。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档