Wordpress 自定义块未显示在块插入器中
Wordpress custom block not showing in block inserter
我正在尝试为网站创建自定义块,但该块没有出现在编辑器对话框中。我已经阅读了多个教程并更改了我的代码很多,但它根本行不通。
我检查过的内容:
- 该块是通过插件添加的,但在以下情况下也不起作用
转移到主题。
- 我知道插件工作正常,因为我可以使用其他 wp
hooks/actions 插件内没有问题。
- 我试过同时使用 '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',
]);
});
解决了,因为我用的是WP_PLUGIN_DIR
而不是plugin_dir_url(__FILE__)
。这意味着 js 请求 url 来自 root 而不是 wp 安装。
我正在尝试为网站创建自定义块,但该块没有出现在编辑器对话框中。我已经阅读了多个教程并更改了我的代码很多,但它根本行不通。
我检查过的内容:
- 该块是通过插件添加的,但在以下情况下也不起作用 转移到主题。
- 我知道插件工作正常,因为我可以使用其他 wp hooks/actions 插件内没有问题。
- 我试过同时使用 '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',
]);
});
解决了,因为我用的是WP_PLUGIN_DIR
而不是plugin_dir_url(__FILE__)
。这意味着 js 请求 url 来自 root 而不是 wp 安装。