是否可以将index.asset.php文件与enQueue_BLOCK_EDITOR_ASSIES操作一起使用?

时间:2021-05-16 作者:leemon

我正在开发一个插件来注册PluginDocumentSettingPanel 在古腾堡。由于这不是块,我不能使用register_block_type 函数来添加其资产,因此我必须使用enqueue_block_editor_assets 取而代之的行动。

function my_enqueue_block_editor_assets() {

    $dir = dirname( __FILE__ );
    $script_asset_path = "$dir/build/index.asset.php";
    if ( ! file_exists( $script_asset_path ) ) {
        throw new Error(
            \'You need to run `npm start` or `npm run build` for the block first.\'
        );
    }
    $script_asset = require( $script_asset_path );

    wp_enqueue_script(
        \'my-gutenberg-plugin\',
        plugins_url( \'build/index.js\', __FILE__ ),
        $script_asset[\'dependencies\'],
        filemtime( plugin_dir_path( __FILE__ ) . \'build/index.js\' )
    );

}
add_action( \'enqueue_block_editor_assets\', \'my_enqueue_block_editor_assets\' );
但是,使用这种方法,我似乎无法使用生成的index.asset.php 文件来加载脚本依赖项,因为我得到了多个wp.editor is undefined / wp.coreData is undefined / 等错误。如果我使用array( \'wp-editor\', \'wp-data\', etc... ), 没有错误。

有没有办法使用index.asset.php 使用文件enqueue_block_editor_assets? 如果是,如何?

1 个回复
最合适的回答,由SO网友:Edward 整理而成

是的,您可以使用索引。资产“enqueue\\u block\\u editor\\u assets”操作中的php文件。我猜您错过了npm安装要使用的依赖项并将其导入脚本中。这就是@wordpress/scripts生成资产的方式。php文件。如果您没有在JavaScript文件中导入依赖项,则会创建资产的依赖项管理。php无法工作。

例如:

npm install @wordpress/api-fetch --save

在脚本中:

import apiFetch from \'@wordpress/api-fetch;

相关推荐

多国语言上的Gutenberg块JavaScript本地化不起作用

我可以使用wordpress成功翻译我的插件。org用于所有php字符串。一切都很好。我甚至可以看到需要翻译的字符串https://translate.wordpress.org/projects/wp-plugins/simpletoc/stable/de/default/ 在这种情况下,它是“更新目录”:https://plugins.trac.wordpress.org/browser/simpletoc/tags/1.8/build/index.js#L111所以我翻译了它们,等了24小时。我可以