前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >在 WordPress 中如何定义字段依赖显示

在 WordPress 中如何定义字段依赖显示

作者头像
Denis
发布2023-04-13 11:11:55
发布2023-04-13 11:11:55
8.5K00
代码可运行
举报
文章被收录于专栏:WordPress果酱WordPress果酱
运行总次数:0
代码可运行

WPJAM Basic 插件作为我们「WordPree果酱」团队所有插件和项目的基础,其中表单字段的渲染就是其中最重要的一个能力,我们做到了只需配置就能使用,无需额外增加页面的 JavaScript 的交互代码。

比如插件的「缩略图设置」页面,只需写表单字段的配置代码和字段之间上的显示依赖关系,除了插件本身的基础的数据比较代码之外,其他都是通过配置定义的。

所以我才经常在 WPJAM Basic 群里面说,我们现在做项目,只需要需求清晰,一个晚上就能做好后台。

定义了字段依赖关系之后,表单渲染的时候,字段显示就需要进行数据比较是经常进行的操作,当然我们可以使用 PHP 和 JavaScript 的比较操作符进行操作的,但是如果需要进行回调操作的时候,那就要有点麻烦了,所以我定义两个 PHP 函数和一个 JavaScript 函数进行数据比较。

wpjam_compare

代码语言:javascript
代码运行次数:0
运行
复制
wpjam_compare($value, $operator, $compare_value);

wpjam_compare 函数用于对两个数据进行比较,具体说是对 value 和 compare_value 进行

代码语言:javascript
代码运行次数:0
运行
复制
wpjam_compare(10, '<=', 12);					// 返回 true
wpjam_compare('a', 'IN', array('a', 'b', 'c'));	// 返回 true
wpjam_compare(20, 'BETWEEN', array(30, 40));	// 返回 false

是不是很方便,只需要传递两个数据,和比较方法接口,特别说一下目前支持的比较方法有:'=', '!=', '>', '>=', '<', '<=', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN' 共10种,基本可以符合常见的比较情况。

wpjam_compare 函数同样定义了 JavaScript 版本,参数和使用方法一样,不再重复了。

wpjam_show_if

代码语言:javascript
代码运行次数:0
运行
复制
wpjam_show_if($item, $args);

wpjam_compare 函数用于对两个数据进行比较,那么如果要比较数组和对象,这个时候可以用到 wpjam_show_if 函数,它有两个参数:

$item:要比较的对象或者数组。

args:可以指定要比较 item 中的哪个字段(key 指定),比较的方法(compare 指定),要比较的值(value 指定),说起来有点复杂,还是来看例子吧:

代码语言:javascript
代码运行次数:0
运行
复制
wpjam_show_if($post, array(
	'key'		=> 'post_type',
	'compare'	=> '=', 
	'value'		=> 'page'
));

上面这个例子的意思是比较 $postpost_type 是不是等于 page。这样看,是不是就很简单了,同样 comparewpjam_compare 函数一样有 10 种比较方法。

如果一个比较还不能满足,wpjam_show_if 函数支持多重比较:

代码语言:javascript
代码运行次数:0
运行
复制
wpjam_show_if($post, array(
	array(
		'key'		=> 'post_type',
		'compare'	=> '=', 
		'value'		=> 'page'
	),
	array(
		'key'		=> 'post_status',
		'compare'	=> 'IN', 
		'value'		=> ['publish','draft']
	)
));

上面这个例子的意思是除了比较 $postpost_type 是不是等于 page,还比较它的 post_status 是不是等于 publishdraft

这样是不是很实用。😁

定义字段依赖显示

看一段简化之后的缩略图设置的字段定义代码,其中 widthheight 的字段都有 show_if 属性,它指定了只有 type 字段的值为空的时候才显示。

代码语言:javascript
代码运行次数:0
运行
复制
$show_if	= ['key'=>'type', 'compare'=>'!=', 'value'=>''];
$fields		= [
	'type'		=> [
		'type'		=>'select',
		'options'	=>[
			''		=> '关闭缩略图',
			'img'	=> '本地媒体模式',
			'image'	=> '输入图片链接模式'
		]
	],
	'width'		=> [
		'title'		=> '缩略图尺寸:',
		'type'		=> 'number',
		'show_if'	=> $show_if,
		'group'		=> 'term',
		'class'		=> 'small-text',
	],
	'height'	=> [
		'type'		=> 'number',
		'show_if'	=> $show_if,
		'group'		=> 'term',
		'class'		=> 'small-text',
	]
];

通过这样的方式来定义表单的字段和字段之间依赖显示关系,把复杂的事情变得异常简单,写代码也变得超级有趣。🤔

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • wpjam_compare
  • wpjam_show_if
  • 定义字段依赖显示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档