developwithwp/metabox-control

一个库,用于根据模板条件性地显示和隐藏元框。

安装次数: 34

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 2

开放问题: 0

语言:JavaScript

类型:

dev-master 2017-10-02 18:40 UTC

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.phppage-two.php),以及几个元框(mb_onemb_threemb_two)。这些将取决于您的实现,这里只是一个示例。

metaboxControl.addTemplate( 'page-one.php', ['mb_one', 'mb_three']);
metaboxControl.addTemplate( 'page-two.php', ['mb_two']);

就这样!现在当您访问创建或编辑WordPress页面时,只有在选择相关页面模板时,这些元框才会可见。

路线图

  • 测试覆盖率
  • 虽然已经可行,但我希望使移除默认元框更加容易。
  • 将构建过程添加到压缩中
  • 转换为ES6
  • 在Bower上托管以更好地处理依赖关系。
  • 改善DOM缓存。当前实现可能导致冗余DOM对象被缓存。