@wordpress/命令

Commands是一个通用包,允许注册和修改要使用命令菜单(也称为命令选项板)显示的命令。可以使用以下命令在编辑器中访问命令调色板厘米+克.

命令的类型

注册命令有两种方式:静态或动态。这两种方法都接收命令对象作为参数,该参数提供:

  • 名称:命令的唯一机器可读名称
  • 标签:可读标签
  • 偶像:SVG图标
  • 回调:选择命令时调用的回调函数
  • 上下文:(可选)命令的上下文

静态命令

可以使用wp.data.dispatch(wp.commands.store).registerCommand操作或使用wp.commands.use命令反作用吊钩。静态命令通常用于执行特定操作。这些可能包括添加新页面或打开编辑器界面的一部分,例如打开编辑器首选项模式。请参阅使用命令 代码示例如下所示。

动态命令

另一方面,使用“命令加载器”注册动态命令,wp.commands.useCommandLoader。当命令列表取决于用户在命令调色板输入中输入的搜索词时,或者当某些命令仅在满足某些条件时才可用时,需要这些加载器。

例如,当用户键入“contact”时,命令调色板需要使用该输入筛选可用页面,以尝试查找contact页面。请参阅使用CommandLoader 代码示例如下所示。

上下文命令

静态和动态命令可以是上下文命令。这意味着在给定的上下文中(例如,在导航站点编辑器或编辑模板时),某些特定命令具有更高的优先级,并且在打开命令选项板后立即可见。此外,当键入命令调色板时,这些上下文命令显示在其余命令的上方。

目前,已经实现了两个上下文:

  • 站点编辑器:这是在站点编辑器中导航时设置的上下文(侧栏可见)。
  • 站点编辑器编辑:这是在站点编辑器中编辑文档(模板、模板部件或页面)时设置的上下文。
    随着命令调色板的使用扩展,将添加更多上下文。

将命令或命令加载器附加到给定上下文就像添加上下文属性(使用上面可用上下文中的正确上下文值)使用命令使用命令加载器电话。

WordPress数据API

命令调色板还提供了许多选择器和操作操纵其状态,包括:

  • 使用以下选择器检索已注册的命令和命令加载程序获取命令获取命令加载器
  • 使用是打开的选择器。
  • 使用打开关闭行动。

请参阅命令数据文档以获取更多信息。

安装

安装模块

npm install@wordpress/commands--保存

此包假定您的代码将在2015年+环境。如果您使用的环境对此类语言功能和API的支持有限或不支持,您应该包括polyfill发货@wordpress/babel预设在代码中。

美国石油学会

商店

存储命令命名空间的定义。

相关的

用法

从“@wordpress/commands”导入{store as commandsStore};从“@wordpress/data”导入{useDispatch};...const{open:openCommandCenter}=useDispatch(commandsStore);

类型

  • 对象

使用命令

将命令附着到命令选项板。用于静态命令。

用法

从“@wordpress/commands”导入{useCommand};从“@wordpress/icons”导入{plus};使用命令({name:“myplugin/my命令名”,label:__('添加新帖子'),图标:加号,回调:({close})=>{document.location.href='post-new.php';close();},} );

参数

  • 命令 导入(“../store/actions”)。WP命令配置:命令配置。

使用CommandLoader

将命令加载器附着到命令选项板。用于动态命令。

用法

从“@wordpress/commands”导入{useCommandLoader};从“@wordpress/icons”导入{post、page、layout、symbolFilled};常量图标={帖子,第页,wp_template:布局,wp_template_part:符号填充,};函数usePageSearchCommandLoader({search}){//检索“搜索”术语的页面。const{records,isLoading}=useSelect((select)=>{const{getEntityRecords}=select(coreStore);常量查询={搜索:!!搜索?搜索:未定义,每_页:10,orderby:搜索?'相关性':'日期',};返回{记录:getEntityRecords('postType','page',query),正在加载:!选择(coreStore).hasFinishedResolution('获取实体记录',“postType”,“page”,查询]),};},[搜索]);//创建命令。const命令=useMemo(()=>{return(records??[]).slice(0,10).map((record)=>{返回{名称:记录。标题?。呈现+“”+记录id,标签:记录。标题?。提供? 记录。标题?。提供:__('(无标题)'),icon:图标[postType],回调:({close})=>{常量参数={职位类型,postId:record.id,…额外参数,};document.location=addQueryArgs('site-editor.php',args);关闭();},};} );},[记录,历史]);返回{命令,正在加载,};}使用CommandLoader({name:'我的插件/页面搜索',hook:usePageSearchCommandLoader,} );

参数

  • 装载机 导入(“../store/actions”)。WPCommandLoaderConfig(WP命令加载程序配置):命令加载器配置。

参与此包

这是古腾堡项目的一部分。该项目组织为单回购。它由多个独立的软件包组成,每个包都有特定的用途。此monorepo中的包发布到净现值并由使用WordPress(文字出版社)以及其他软件项目。

要了解更多关于对这个包或古腾堡整体贡献的信息,请阅读该项目的主要内容投稿人指南.