古腾堡核心/列:正确更改 html 输出

问题描述

我想知道,这种更改块核心/列的HTML输出方法是否以最好的方式完成。基本上,我需要一个 额外的 div-tag wihin wp-block-column 输出

输出

<div class="wp-block-columns"><div class="wp-block-column">content col1</div><div class="wp-block-column">content col2</div></div>

所需的输出

<div class="wp-block-columns"><div class="wp-block-column"><div class="wp-block-column-inner">content col1</div></div><div class="wp-block-column"><div class="wp-block-column-inner">content col2</div></div></div>

目前我在主题functions.PHP

中使用以下内容
function custom_render_block_core_columns (
    string $block_content,array $block
): string 
{
    if (
        $block['blockName'] === 'core/columns' && 
        !is_admin() &&
        !wp_is_json_request()
    ) {
        
        $html = '';

        
        $block['attrs']['className'] ??= '';
        $block['attrs']['className'] .= ' theme--' . ($block['attrs']['backgroundColor'] ?? 'white');

        $html .= '<div class="wp-block-columns ' . $block['attrs']['className'] . '">' . "\n";
        
        if (isset($block['innerBlocks'])) {
            foreach ($block['innerBlocks'] as $inner_block) {
                $varCheck = trim($inner_block['innerHTML']);
                                
                if ($varCheck == '<div class="wp-block-column"></div>') {
                    $inner_block['innerHTML'] =  '<div class="wp-block-column"><div class="wp-block-column-inner"></div></div>';  
                    
                    $inner_block["innerContent"][0] = '<div class="wp-block-column"><div class="wp-block-column-inner">';
                    $inner_block["innerContent"][2] = '</div></div>';  
                    
                }
                $html .= render_block($inner_block);
            }
        }

        $html .= '</div><!--/ .wp-block-columns -->' . "\n";        
        return $html;
    }

    return $block_content;
}

add_filter('render_block','custom_render_block_core_columns',null,2);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...