Wordpress Gutenberg 自定义块插入我的块时,viewScript 不会加载到前端

问题描述 投票:0回答:1

我最近利用 @wordpress/create-block 包开发了一个自定义古腾堡块,它有效地生成了一个完整的插件框架。我只需要调整一些现有文件即可使核心功能正常工作。

此块是英雄/视觉类型,用户可以在其中选择图像并为每张幻灯片添加标题。该块在前端正确显示,显示所有选定的图像和标题。

我当前的任务是实现 JavaScript 以启用轮播功能。但是,我遇到了一个问题,即我的 viewScript(指定为“file:./view.js”)未在前端加载。不加载是指该脚本不会出现在 HTML 标记或网络选项卡中。

这是位于构建文件夹中的 block.json 的内容:

{
  "$schema": "https://schemas.wp.org/trunk/block.json",
  "apiVersion": 3,
  "name": "custom-block/hero",
  "version": "0.1.0",
  "title": "Hero",
  "category": "widgets",
  "icon": "smiley",
  "description": "Custom hero block",
  "attributes": {
    "images": {
      "type": "array",
      "source": "query",
      "default": [],
      "selector": "img",
      "query": {
        "url": {
          "type": "string",
          "source": "attribute",
          "attribute": "src"
        },
        "alt": {
          "type": "string",
          "source": "attribute",
          "attribute": "alt"
        },
        "caption": {
          "type": "string",
          "source": "attribute",
          "attribute": "data-caption"
        }
      }
    }
  },
  "supports": {
    "html": false
  },
  "textdomain": "hero",
  "editorScript": "file:./index.js",
  "editorStyle": "file:./index.css",
  "style": "file:./style-index.css",
  "viewScript": "file:./view.js",
  "viewStyle": "file:./view.css"
}

您可以在我的插件的构建文件夹中验证 view.js 是否存在就在实际存储库中。

插件的主文件 Hero.php 没有使用 render_callback 函数,因此我认为不需要手动脚本排队。它看起来是这样的:

/**
 * Plugin Name:       Hero
 * Description:       Custom hero block.
 * Requires at least: 6.1
 * Requires PHP:      7.0
 * Version:           0.1.0
 * Author:            Daniel
 * License:           GPL-2.0-or-later
 * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain:       hero
 *
 * @package CreateBlock
 */

if ( ! defined( 'ABSPATH' ) ) {
  exit; // Exit if accessed directly.
}

function create_block_hero_block_init() {
  register_block_type( __DIR__ . '/build' );
}

add_action( 'init', 'create_block_hero_block_init' );

尽管正确添加了块并保存了页面,view.js 脚本在前端仍然未被检测到。我在互联网上搜索了解决方案,但它似乎对其他人有用。我会错过重要的一步吗?

提前感谢您的指导。

javascript php wordpress wordpress-gutenberg gutenberg-blocks
1个回答
0
投票

问题解决了。如果有人遇到与我相同的问题,请进入您尝试渲染块的 *.php 文件。确保您使用

the_content()
来呈现页面内容,而不是
get_the_content()

© www.soinside.com 2019 - 2024. All rights reserved.