Недавно я разработал собственный блок Гутенберга, используя пакет @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 [JS]](https://i.imgur.com/WsjO6zJb.png)


Задача решена. Если у кого-то такая же проблема, как у меня, зайдите в файл *.php, в котором вы пытаетесь отобразить блок. Убедитесь, что вы используете the_content() для отображения содержимого страницы, а не get_the_content().
Вы также можете разместить сообщение на wordpress.stackexchange.com