askupa-software/amarkal-metabox

一套用于创建WordPress元框的实用函数

dev-master 2017-12-24 22:09 UTC

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-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-uiamarkal-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 );