我有一个自定义帖子类型的块模板。
当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时在列上设置不同的宽度,而不是每次都手动进行?