Wordpress 自定义块未显示在块插入器中

Wordpress custom block not showing in block inserter

我正在尝试为网站创建自定义块,但该块没有出现在编辑器对话框中。我已经阅读了多个教程并更改了我的代码很多,但它根本行不通。

我检查过的内容:

如有任何帮助,我们将不胜感激。

这里是js块src(已编译):

import { registerBlockType } from '@wordpress/blocks'

registerBlockType('ghs/landing-page-block', {
    title: 'Landing Page',
    apiVersion: 2,
    category: 'design',
    icon: 'smiley',
    description: 'Layout for the GHS landing page',
    keywords: ['GHS', 'landing', 'page', 'front'],
    edit: () => {
        return (<div>hello</div>)
    },
    save: () => {
        return (<div>hello</div>)
    }
});

和 php 注册它:

add_action('init', function() {
    $asset_file = include( WP_PLUGIN_DIR . '/ghs-custom-blocks/assets/js/landing-page-block.asset.php');

    wp_register_script('ghs-landing-page',
        WP_PLUGIN_DIR . '/ghs-custom-blocks/assets/js/landing-page-block.js',
        $asset_file['dependencies'],
        $asset_file['version']);

    register_block_type('ghs/landing-page-block', [
        'api_version' => 2,
        'editor_script' => 'ghs-landing-page',
    ]);
});

解决了,因为我用的是WP_PLUGIN_DIR 而不是plugin_dir_url(__FILE__)。这意味着 js 请求 url 来自 root 而不是 wp 安装。