发现了一款超级好用的创建Meta Box的脚本,也可以说是一款插件,因为作者将脚本升级为插件,便于维护和升级。该脚本采用面向对象的方法编写,可以很好的避免函数名称冲突,功能强大,可以轻松创建所有表单输入元素,还包括date picker、color picker等,让你的Meta Box不输给主题的theme options。

metabox

Meta Box 简介

该脚本非常灵活,你可以将它集成到自己的主题里,也可以直接下载WordPress插件版,插件版只需稍微修改即可塞进任何主题。

Meta Box 插件下载地址

Meta Box介绍

功能丰富

  • 支持input、checkbox、radio、select、textarea
  • 支持所见即所得编辑器(wp_editor)
  • 支持文件上传(upload box)
  • 支持图片上传以及WordPress默认的媒体上传功能
  • 支持Date Picker
  • 支持Color Picker

Meta Box使用方法

安装并激活插件,将插件目录下的demo/demo.php文件拷贝到主题目录,注意只是拷贝demo.php文件

在主题的functions.php中写如下代码即可生效

include 'demo.php';

效果如下图所示,点击查看大图

Meta Box

打开demo.php,里面有详细的使用说明,只要你懂得php数组,就可以使用。

$prefix = 'YOUR_PREFIX_'; //定义前缀

global $meta_boxes;

$meta_boxes = array(); //$meta_boxes存储用户自定义的meta box

// 第一个meta box,要创建更多meta box,按照这段代码再写上几遍就可以
$meta_boxes[] = array(
	// Meta Box id,必须是唯一的  Optional since 4.1.5
	'id' => 'personal',

	// Meta box 标题 - Will appear at the drag and drop handle bar. Required.
	'title' => 'Personal Information',

	// post类型,定义meta box在哪些编辑(post、page、custom post type)界面显示
	'pages' => array( 'post', 'slider' ),

	// Meta box 出现的位置
	'context' => 'normal',

	// Meta box的优先级
	'priority' => 'high',

	// Meta box中包含多少个表单元素,这里定义
	'fields' => array(
		// TEXT
		array(
			// Field name - Will be used as label
			'name'		=> 'Full name',
			// Field ID, i.e. the meta key
			'id'		=> $prefix . 'fname',
			// Field description (optional)
			'desc'		=> 'Format: First Last',
			// CLONES: Add to make the field cloneable (i.e. have multiple value)
			'clone'		=> true,
			'type'		=> 'text', //类型定义要使用哪种表单元素
			// Default value (optional)
			'std'		=> 'Anh Tran'
		),
		// DATE
		array(
			'name'		=> 'Day of Birth',
			'id'		=> "{$prefix}dob",
			'type'		=> 'date',
			// Date format, default yy-mm-dd. Optional. See: http://goo.gl/po8vf
			'format'	=> 'd MM, yy'
		)
);

获取Meta box的值

$meta = get_post_meta( get_the_ID(), 'meta_key', true );
echo $meta; // If you want to show

meta_key是Meta field的ID,例如

$prefix = 'rw_';
    ...
    array(
    'name' => 'Full name',
    'id' => $prefix . 'fname',
    'type' => 'text',
)

meta_key是rw_fname

4条留言

  1. 我用谷歌搜,发现有个采集站采了你的文章排在你前头..唉

    1. 是啊,好像有个叫推酷的,不经站长允许就采集别人文章,排名还靠前,有的站长还找过。幸好我不指望博客有啥收入,不然哭都找不到地方。

评论功能已关闭