对于一个项目,我必须扩展核心块核心/封面图像。对于第一次基本尝试,我想到了以下代码:
PHP:
add_action(\'enqueue_block_editor_assets\', function() {
wp_enqueue_script(\'hephaestus-admin-script\',
get_template_directory_uri() . \'/dist/js/admin.js\', [\'wp-blocks\', \'wp-element\', \'wp-edit-post\'], THEME_VERSION);
});
管理员。js公司:
function transformElement(element, blockType, attributes) {
if (blockType.name != \'core/cover-image\') {
return element;
}
var newElement = wp.element.createElement(
\'div\',
{
className: \'wp-block-cover-image\',
style: \'background-image: url(\\\'\' + attributes.url + \'\\\');\',
},
[
wp.element.createElement(
\'p\',
{
className: \'wp-block-cover-image-text\',
},
[
wp.element.createElement(
\'span\',
{
className: \'wp-block-cover-image-text-stage\',
},
attributes.title
)
]
),
]
);
return newElement;
}
wp.hooks.addFilter(
\'blocks.getSaveElement\',
\'hephaestus/modify-get-save-element\',
transformElement
);
基本上这是可行的。我可以在编辑器中添加封面图像块,前端输出也符合要求。
但在后端重新访问站点时,Gutenberg给了我以下错误:
块验证:的块验证失败core/cover-image
预期:
<div class="wp-block-cover-image" style="background-image: url(\'https://xxxxxxxx/wp-content/uploads/2018/08/xxxxxxxx.jpg\');"><p class="wp-block-cover-image-text"><span class="wp-block-cover-image-text-stage"></span></p></div>
实际值:
<div class="wp-block-cover-image" style="background-image: url(\'https://xxxxxxxx/wp-content/uploads/2018/08/xxxxxxxx.jpg\');"><p class="wp-block-cover-image-text"><span class="wp-block-cover-image-text-stage">This is a test</span></p></div>
注意:图像url故意划掉为什么我在这里得到这个块验证错误?我认为这与title属性有关。但我不知道是什么原因。。。
有人帮忙吗?
你好,马库斯