如何在CPT块模板中设置列宽?

时间:2020-01-27 作者:WebElaine

我有一个自定义帖子类型的块模板。

当WP Core column块添加了对不同宽度的支持时,我尝试这样设置模板(我在这里将帖子类型更改为“post”,以防其他人计划尝试):

<?php
add_action(\'init\', \'wpse_register_post_template\');
function wpse_register_post_template() {
    $post_type_object = get_post_type_object(\'post\');
    $post_type_object->template = array(
        array(\'core/columns\', array(),
            array(
                array(\'core/column\', array(\'width\' => \'33.33\'), array(
                    array(\'core/paragraph\', array()),
                )),
                array(\'core/column\', array(\'width\' => \'66.66\'), array(
                    array(\'core/paragraph\', array()),
                )),
            )
        )
    );
}
?>
然而,当我添加一篇新文章时,实际上并没有应用列宽。即使数据库显示内部列正确保存了“width”属性,但它们最终在编辑器和前端都是两个50%宽度的列。

在数据库中看起来像这样-

<!-- wp:columns -->
<div class="wp-block-columns"><!-- wp:column {"width":"33.33"} -->
<div class="wp-block-column"><!-- wp:paragraph -->
<p>Left Col</p>
<!-- /wp:paragraph --></div>
<!-- /wp:column -->

<!-- wp:column {"width":"66.66"} -->
<div class="wp-block-column"><!-- wp:paragraph -->
<p>Right Col</p>
<!-- /wp:paragraph --></div>
<!-- /wp:column --></div>
<!-- /wp:columns -->
在一篇文章中,我在编辑器中手动添加了Columns块,因此我可以从UI中选择33%/66%的宽度,看起来WP向div添加了内联样式:

<!-- wp:columns -->
<div class="wp-block-columns"><!-- wp:column {"width":33.33} -->
<div class="wp-block-column" style="flex-basis:33.33%"><!-- wp:paragraph -->
<p>Left col</p>
<!-- /wp:paragraph --></div>
<!-- /wp:column -->

<!-- wp:column {"width":66.66} -->
<div class="wp-block-column" style="flex-basis:66.66%"><!-- wp:paragraph -->
<p>Right col</p>
<!-- /wp:paragraph --></div>
<!-- /wp:column --></div>
<!-- /wp:columns -->
是否有方法更新CPT模板,以便添加的块将具有相同的标记,从而在创建新CPT时在列上设置不同的宽度,而不是每次都手动进行?

1 个回复
最合适的回答,由SO网友:Vitauts Stočka 整理而成

将列宽值从string更改为number,如下所示

array(\'core/column\', array(\'width\' => 33.33)

相关推荐