askupa-software / amarkal-metabox
一套用于创建WordPress元框的实用函数
dev-master
2017-12-24 22:09 UTC
Requires
- php: >=5.3.0
- askupa-software/amarkal-ui: dev-master
This package is not auto-updated.
Last update: 2024-09-15 01:48:16 UTC
README
使用 amarkal-ui 组件在WordPress的任何文章类型中添加元框。
测试至: WordPress 4.7
依赖项: amarkal-ui
概述
amarkal-metabox 允许您使用来自 amarkal-ui 的UI组件将元框添加到任何文章类型(文章、页面和自定义文章类型)。
安装
通过Composer
如果您正在使用命令行
$ composer require askupa-software/amarkal-metabox:dev-master
或者简单地将其添加到您的 composer.json
文件中
"require": { "askupa-software/amarkal-metabox": "dev-master" }
然后运行命令
$ composer install
这将把软件包安装到目录 vendors/askupa-software/amarkal-metabox
中。现在您只需要包含composer自动加载器。
require_once 'path/to/vendor/autoload.php';
手动
从github下载 amarkal-ui 和 amarkal-metabox,并将它们包含到您的项目中。
require_once 'path/to/amarkal-ui/bootstrap.php'; require_once 'path/to/amarkal-metabox/bootstrap.php';
参考
amarkal_add_meta_box
向特定文章类型添加元框。
amarkal_add_meta_box( $id, array $args )
此函数可用于向特定文章类型添加元框,并使用类似于WordPress的 add_meta_box()
的参数。然而,与 add_meta_box()
不同,此函数接受一个UI字段列表,它将渲染并处理保存过程。有关支持的字段类型,请参阅 amarkal-ui,或使用 amarkal_ui_register_component
注册自己的字段类型。
参数
$id
(String) 指定元框的ID。$args
(Array) 指定元框参数的列表title
(String) 指定元框的标题。screen
(String|Array|WP_Screen) 指定应显示框的屏幕或屏幕(如文章类型、'链接'或'评论')。接受单个屏幕ID、WP_Screen对象或屏幕ID数组。默认为null
。context
(String) 指定元框应显示的屏幕内的上下文。可用的上下文因屏幕而异。文章编辑屏幕的上下文包括 'normal'、'side' 和 'advanced'。评论屏幕的上下文包括 'normal' 和 'side'。菜单元框(手风琴部分)都使用 'side' 上下文。默认为 'advanced'。priority
(String) 指定框应在上下文中显示的优先级('high'、'low')。默认为'default'
。fields
(Array) 数组数组。指定一个 amarkal-ui 组件数组参数的列表。每个数组应包含在 amarkal-ui 中指定的原始UI组件参数,以及以下参数type
(String) 指定UI组件的类型。一个核心amarkal-ui
组件或一个注册的自定义组件。title
(String) 指定字段的标题。description
(String) 指定将打印在字段标题下方的简短描述。
示例用法
// Add a metabox to the 'page' post type amarkal_add_meta_box('my_meta_box', array( 'title' => 'My Meta Box', 'screen' => 'page', 'context' => 'normal', 'priority' => 'default', 'fields' => array( array( 'type' => 'text', 'title' => 'Page Subtitle', 'name' => 'page_subtitle', 'description' => 'The page\'s subtitle.', 'default' => 'Some default value', 'filter' => function($v) { return sanitize_text_field($v); }, 'validation' => function($v,&$e) { return true; } ) ) )); // Then you can retrieve the data using: $subtitle = amarkal_get_meta_box_value( 'my_meta_box', 'page_subtitle', $post_id );
amarkal_get_meta_box_value
获取指定字段的值,如果没有数据库中的值,则可选地返回默认值。
amarkal_get_meta_box_value( $metabox_id, $name, $post_id )
此函数可用于检索指定元字段和帖子ID的值。如果数据库中没有给定元字段和帖子ID的值,将返回默认字段值。
参数
$metabox_id
(字符串) 指定元框的ID。$name
(字符串) 指定字段的名称。$post_id
(数字) 指定帖子的ID。
示例用法
$value = amarkal_get_meta_box_value( 'my_meta_box', 'field_name', $post_id );