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

Posted

技术标签:

【中文标题】Wordpress 自定义块未显示在块插入器中【英文标题】:Wordpress custom block not showing in block inserter 【发布时间】:2022-01-08 07:54:57 【问题描述】:

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

我检查过的内容:

该块是通过插件添加的,但在以下情况下它也不起作用 移至主题。 我知道插件工作正常,因为我可以使用其他 wp 插件中没有问题的钩子/操作。 我尝试过同时使用“init”和“enqueue_block_assets”,但都没有 工作。 我已验证所有文件位置和路径都正确,因为我 已将它们呼应出来进行检查。 我已经改成默认主题了,还是没有出现。

任何帮助将不胜感激。

这里是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',
    ]);
);

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于Wordpress 自定义块未显示在块插入器中的主要内容,如果未能解决你的问题,请参考以下文章

将自定义类插入到由 tinyMCE 通过 jQuery 呈现的 WYSIWIG 输出中(在 Wordpress 中处理带有标题的图像)

Wordpress 自定义演示侧边栏未出现在帖子上

Drupal 8 自定义模块未显示在块布局中

php WordPress插件,用于为WP多站点按站点存储自定义和内置用户字段。适合多语言设置。自定义为y

在 Iphone 的日期选择器中插入空白值

无法显示来自 Wordpress REST API 自定义端点的自定义字段