0

我正在使用create-guten-blockfoss 为 Gutenberg 街区工作。在尝试从 PHP 文件中编写的函数获取输出时Error loading block: No route was found matching the URL and request method,我在 Gutenberg 编辑器的块中看到错误。

考虑以下代码plugin.php

function test_me_render_serverside_handler($args) {
    return "<p>testCategory: " . $args["testCategory"] . "</p>";
}

function test_me_register_block_type() {
    register_block_type(
        'test-me/test-to-block', array(
            'render_callback' => 'test_me_render_serberside_handler',
            'attributes' => array(
                'testCategory' => array(),
            ),
        )
    );
}

add_action( 'init', 'test_me_register_block_type' );

block.js 文件中的反应代码是:

attributes: {
    adCategory: { // Required
        type: 'integer',
    },
},

edit: ( props ) => {
    const { className, setAttributes, attributes } = props;
    const { adCategory } = attributes;

    return (
        <div className={ className }>
        {
            createElement( ServerSideRender, {
                block: 'test-me/test-to-block',
                attributes: attributes,
            } )
        }
        </div>
    );
},

当试图在古腾堡编辑器中创建块时,我发现错误test-me/test-to-block是一个请求wp-json/wp/v2/block-renderer/test-me/test-to-block

我是否遗漏了一些东西来为这个块启用 rest api 路由?

4

1 回答 1

0

好吧,问题是函数名称中的拼写错误,即 'test_me_render_serverside_handler' 和test_me_render_serberside_handler. 并且我们还需要attributes在 php 函数和 js 属性中保持相同的名称和类型。

于 2019-11-29T13:51:07.617 回答