首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在编辑器中将类名添加到Gutenberg块包装器?

在编辑器中将类名添加到Gutenberg块包装器?
EN

WordPress Development用户
提问于 2018-12-28 22:46:09
回答 2查看 8.7K关注 0票数 5

我试图在古腾堡创建自定义列块。可以根据属性将类添加到编辑器中的元素包装器中吗?我想把???换成基于类的,例如columns-4。否则,不可能使用flex

代码语言:javascript
复制
<div id="..." class="wp-block editor-block-list__block ???" data-type="my-blocks/column" tabindex="0" aria-label="Block: Single Column">
 <div>
      <div class="this-can-be-set-in-edit-or-attributes">
         ...
     </div>
 </div>

</div>
EN

回答 2

WordPress Development用户

回答已采纳

发布于 2018-12-28 22:54:07

实际上,它可以通过过滤器来完成:

代码语言:javascript
复制
const { createHigherOrderComponent } = wp.compose;
const withCustomClassName = createHigherOrderComponent( ( BlockListBlock ) => {
    return ( props ) => {
        if(props.attributes.size) {
            return <BlockListBlock { ...props } className={ "block-" + props.attributes.size } />;
        } else {
            return <BlockListBlock {...props} />
        }

    };
}, 'withClientIdClassName' );

wp.hooks.addFilter( 'editor.BlockListBlock', 'my-plugin/with-client-id-class-name', withCustomClassName );
票数 7
EN

WordPress Development用户

发布于 2021-05-19 16:20:11

我认为也可以使用useBlockProps管理包装类。我在官方的古登堡博士,这里中找到了这个解决方案。

代码语言:javascript
复制
import { useBlockProps } from '@wordpress/block-editor';

// ...
const blockSettings = {
apiVersion: 2,

// ...

edit: () => {
    const blockProps = useBlockProps( {
        className: 'my-random-classname',
    } );

    return <div { ...blockProps }>Your block.</div>;
},
};
票数 5
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/324091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档