本文介绍了WordPress动态过滤器的使用方法和举例说明,这个新的动态过滤器可以减少以前针对特定块类型的呈现所需的代码量,非常有用,这个教程详细介绍了使用方法,有兴趣的朋友可以看看。
下面92建站就和大家分享WordPress动态过滤器的使用方法和举例说明。
使用说明:
在WordPress 5.7中,将引入一个新的动态过滤器 render_block_{$this->name},从而使函数仅可以挂钩到特定类型的块。在新的过滤器中,{$this->name}代表已注册块的名称或slug别名。例如,可以使用render_block_core/paragraph过滤以core/paragraph名称注册的段落块。
这减少了以前针对特定块类型的呈现所需的代码量。
使用举例:
以下示例将过滤所有 core/paragraph块,并将它们包装在一个<div>元素中。
/**
* Wrap all core/paragragh blocks in a <div>.
*
* @param string $block_content The block content about to be appended.
* @param array $block The full block, including name and attributes.
* @return string Modified block content.
*/
function wporg_paragraph_block_wrapper( $block_content, $block ) {
$content = '<div class="my-custom-wrapper">' . $block_content . '</div>';
return $content;
}
add_filter( 'render_block_core/paragraph', 'wporg_paragraph_block_wrapper', 10, 2 );
输出结果:
<div class="my-custom-wrapper">
<!-- block content -->
</div>
注意:所有WordPress Core区块类型的名称都以前缀core/。对于在插件或主题中声明的自定义块类型,过滤器的名称可能类似于render_block_my-plugin/my-custom-block。
在此示例中,将使用large 字体大小关键字的段落包装到<div>元素中:
/**
* Wrap all core/paragraph blocks with large font size in a <div>.
*
* @param string $block_content The block content about to be appended.
* @param array $block The full block, including name and attributes.
* @return string Modified block content.
*/
function wporg_large_sized_paragraph_block_wrapper( $block_content, $block ) {
if ( isset( $block['attrs']['fontSize'] ) && 'large' === $block['attrs']['fontSize'] ) {
$block_content = '<div class="my-large-paragraph">' . $block_content . '</div>';
}
return $block_content;
}
add_filter( 'render_block_core/paragraph', 'wporg_large_sized_paragraph_block_wrapper', 10, 2 );
输出结果:
<div class="my-large-paragraph">
<p class="has-large-font-size">
<!-- block content -->
</p>
</div>
至此介绍就结束了,想使用这个功能的朋友,可以根据教程放到模板里面试试看。