wordpress收费下载资源主题
wordpress付费下载资源插件

WordPress hook钩子allowed_block_types的用法详解

WordPress的`allowed_block_types`钩子是用来控制在Gutenberg编辑器中允许使用的区块类型。通过使用这个钩子,你可以根据自己的需求来限制或扩展Gutenberg编辑器中可用的区块类型。

该钩子有两个参数,第一个参数是一个数组,包含了当前允许的区块类型的列表。第二个参数是当前的帖子类型。

下面是`allowed_block_types`钩子的用法详解:

1. 添加新的区块类型:
你可以通过将新的区块类型添加到`allowed_block_types`钩子的数组参数中来添加新的区块类型。例如,如果你想要添加一个名为`my-custom-block`的自定义区块类型,你可以在`functions.php`文件中添加以下代码:

function add_custom_block_type($allowed_blocks, $post_type) {
return array_merge($allowed_blocks, array(
'my-custom-block'
));
}
add_filter('allowed_block_types', 'add_custom_block_type', 10, 2);

在上述代码中,我们使用`array_merge`函数将`my-custom-block`添加到了`$allowed_blocks`数组中,然后将修改后的数组返回。

2. 移除现有的区块类型:
如果你想要从Gutenberg编辑器中移除某个已有的区块类型,你可以使用`array_diff`函数来移除。例如,如果你想要移除`core/quote`区块类型,你可以在`functions.php`文件中添加以下代码:

function remove_quote_block_type($allowed_blocks, $post_type) {
return array_diff($allowed_blocks, array(
'core/quote'
));
}
add_filter('allowed_block_types', 'remove_quote_block_type', 10, 2);

在上述代码中,我们使用`array_diff`函数将`core/quote`从`$allowed_blocks`数组中移除,然后将修改后的数组返回。

3. 设置不同的区块类型限制:
你可以根据不同的帖子类型来设置不同的区块类型限制。例如,如果你想要在`post`帖子类型中只允许使用`core/paragraph`和`core/image`区块类型,在`page`帖子类型中允许使用所有区块类型,你可以在`functions.php`文件中添加以下代码:

function set_allowed_block_types($allowed_blocks, $post_type) {
if ($post_type === 'post') {
$allowed_blocks = array(
'core/paragraph',
'core/image'
);
}
return $allowed_blocks;
}
add_filter('allowed_block_types', 'set_allowed_block_types', 10, 2);

在上述代码中,我们使用了一个条件语句来检查帖子类型是否为`post`,如果是,则将`$allowed_blocks`数组设置为只包含`core/paragraph`和`core/image`区块类型。

需要注意的是,`allowed_block_types`钩子可以被其他插件或主题文件中的代码覆盖,所以确保在设置区块类型限制时考虑到可能的冲突。

0 个评论

定制开发
本站承接WordPress等系统建站仿站、二次开发、主题插件定制等开发服务
在线咨询
  • 请先加Q,临时会话收不到
    QQ:1-247-246-247

  • QQ一群:104228692(满)
  • QQ二群:64786792
在线咨询
本站承接WordPress建站仿站、二次开发、主题插件定制等PHP开发服务!

了解详情