首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定制gutenberg块中的Vanilla javascript不工作

定制gutenberg块中的Vanilla javascript不工作
EN

WordPress Development用户
提问于 2023-05-02 07:10:04
回答 1查看 57关注 0票数 0

我正试图为一个学校项目创建一个定制的古腾堡街区。我对此并不熟悉,也没有使用@wordpress/create方法。我使用php-、css和javascript文件手动创建了一个带有测试块的插件。javascript使用wp.element.createElement方法在编辑和保存函数中生成块。那里的一切都很正常。

PHP插件文件:

代码语言:javascript
复制
<?php
/**
* Plugin Name: Javascriptblock
* Description: JS Test
* Version: 1.0
* Author: Test
*/

if (!defined("ABSPATH")) {
  exit;
}

function javascriptblock() {

wp_register_script(
    "js-script",
    plugins_url("js.js", __FILE__),
    array("wp-blocks", "wp-components", "wp-element", "wp-i18n", "wp-editor"),
    filemtime(plugin_dir_path(__FILE__) . "js.js")
);

wp_register_style(
    "js-style",
    plugins_url("/js.css", __FILE__),
    array("wp-edit-blocks"),
    filemtime(plugin_dir_path(__FILE__) . "js.css")
);

register_block_type("javascriptblock/js", array(
    "editor_script" => "js-script",
    "editor_style"  => "js-style",
    "style"         => "js-style",
    "category"      => "common",
));
}
add_action("init", "javascriptblock");

以及块的Javascript:

代码语言:javascript
复制
wp.blocks.registerBlockType("javascriptblock/javascriptblock", {
title: "Javascriptblock",
icon: "smiley",
category: "common",

edit: function () {
    return wp.element.createElement(
        "p",
        null,
        "Hello World"
    );
},

save: function () {
    return wp.element.createElement(
        "p",
        null,
        "Hello World!"
    );

    Test();
},
});

最后,需要在块呈现后激活的附加脚本:

代码语言:javascript
复制
function Test() {
  console.log("Working!");
}

如何在插件中对Test函数进行排队?

EN

回答 1

WordPress Development用户

发布于 2023-05-02 13:53:12

块的保存函数只将标记保存到数据库(以及HTML注释,WP用来将HTML解析回编辑器中)。要在您的块的前端使用JS,您需要为在那里运行的东西创建一个单独的JS文件,并对它进行排队,以便WordPress知道包含它。

票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/415743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档