developwithwp / metabox-control
一个库,用于根据模板条件性地显示和隐藏元框。
This package is not auto-updated.
Last update: 2024-09-23 06:43:42 UTC
README
目录
简介
Metabox Control 是一个小的 JavaScript API,允许您控制页面编辑屏幕上的元框。一次一个元框。Metabox Control 允许您 控制 元框何时渲染到屏幕。
为什么?
随着时间的推移,这永远都不会出错。您创建了2或3个自定义页面模板。您添加了2或3个元框,为最终用户提供一个出色的WordPress体验。然后 嘭。您的完美计划变成了一个混乱的混乱。
如何
Metabox Control 允许您指定哪些元框属于哪个页面模板。这就是您需要做的全部。等待您看到使用部分。它非常简单。
从那里开始,Metabox Control 将处理您元框的显示和隐藏。这基于页面模板下拉列表中当前选定的模板。所以让我们看看一些代码。
安装
将此存储库克隆或下载到您的WordPress项目插件目录中。
$ git clone https://github.com/mrbobbybryant/metabox-control.git
一旦下载了代码,只需像平常一样激活插件即可。
API 文档
Metabox Control 为注册模板及其关联元框提供了JavaScript和PHP API。
###JavaScript
metaboxControl.addTemplate( templateName, array( metabox-ids ) );
此方法用于注册页面模板及其关联元框。
templateName
- (string) - 必需 - 这是PHP文件名。例如,page-template-one.php
metabox-ids
- (array) - 必需 - 您希望根据此页面模板显示和隐藏的所有元框ID的数组。这些ID与注册元框时使用的ID相同。注册元框时,这将是通过到add_meta_box()
的第一个参数传递的。- 返回 - 新数组 -或- 错误。
metaboxControl.addTemplate( templateName, array(metabox-ids));
metaboxControl.removeTemplate( templateName );
此方法将删除Metabox Control中给定的模板。
-
templateName
- (string) - 必需 - 这是PHP文件名。例如,page-template-one.php
。这应该与之前已注册的模板相对应。 -
返回 - 新数组 -或- 错误。
metaboxControl.removeTemplate( templateName );
metaboxControl.getTemplates( ) );
此方法不接受任何参数。它允许您查询Metabox Control并获取其跟踪的所有模板列表。这对于故障排除非常有用。
- 返回 - 包裹在Metabox Control中的
registeredTemplates
数组。
metaboxControl.getTemplates();
metaboxControl.getTemplates( ) );
此方法不接受任何参数。它是一个简单的辅助函数,用于快速查看当前选定的WordPress页面模板。
- 返回 - 当前选定的WordPress页面模板。
metaboxControl.currentTemplate();;
API 文档(续)
###PHP PHP代码已被命名空间化。公共API使用命名空间 metabox_control\API;
。
add_metabox_template( $template, $metaboxes );
此方法用于注册页面模板及其关联元框。它还会检查请求的模板是否已注册。如果是,它将内部调用 `update_metabox_templates```。
template
- (string) - 必需 - 这是PHP文件名。例如,page-template-one.php
metaboxes
- (array) - 必需 - 您希望根据此页面模板显示和隐藏的所有元框ID的数组。这些ID与注册元框时使用的ID相同。注册元框时,这将是通过到add_meta_box()
的第一个参数传递的。- 返回 - 布尔值 - 或 - 异常。
\metabox_control\API\add_metabox_template( 'page-two.php', array('mb_two') );
remove_metabox_template( $template );
此方法用于移除先前注册的模板。
template
- (string) - 必需 - 这是PHP文件名。例如,page-template-one.php
- 返回 - 布尔值 - 或 - 异常。
\metabox_control\API\remove_metabox_template( 'page-two.php' );
update_metabox_template( $metaboxes, $exists = null );
此方法用于更新先前注册的模板。
template
- (string) - 必需 - 这是PHP文件名。例如,page-template-one.php
metaboxes
- (数组) - 必需 - 这是一个包含元框ID的数组。- ``exists
- (布尔值) - **可选** - 此参数由
add_metabox_template()```在确定模板是否已被输入时内部使用。 - 返回 - 布尔值 - 或 - 异常。
\metabox_control\API\remove_metabox_template( 'page-two.php', array('mb_two') );
使用
以下示例中,我将模拟在JavaScript中添加两个页面模板(page-one.php 和 page-two.php),以及几个元框(mb_one、mb_three 和 mb_two)。这些将取决于您的实现,这里只是一个示例。
metaboxControl.addTemplate( 'page-one.php', ['mb_one', 'mb_three']); metaboxControl.addTemplate( 'page-two.php', ['mb_two']);
就这样!现在当您访问创建或编辑WordPress页面时,只有在选择相关页面模板时,这些元框才会可见。
路线图
- 测试覆盖率
- 虽然已经可行,但我希望使移除默认元框更加容易。
- 将构建过程添加到压缩中
- 转换为ES6
- 在Bower上托管以更好地处理依赖关系。
- 改善DOM缓存。当前实现可能导致冗余DOM对象被缓存。