【发布时间】:2019-12-09 17:43:46
【问题描述】:
我正在创建一个自定义 WordPress Gutenberg 块,并且我想使用我的插件文件夹中的图像资产(PNG、JPG),以便在 Gutenberg 编辑器和渲染页面上显示。
我正在使用 Webpack 为 JS 和 SCSS 捆绑我的文件。我尝试添加 webpack 图像加载器,它将图像保存到我的主插件目录中的“资产”文件夹中。
但是,当我尝试使用 Block 的主 JS 文件中的图像资产时,我无法找到一种方法来访问在我的 WordPress 服务器上运行的图像的完整 URL 路径,该服务器目前在 localhost 的 docker 容器中运行。
我希望找到一个 WordPress 方法来返回我的插件目录的路径,并使用它来指向图像资产,无论它们是如何捆绑的,但我无法在文档中找到解决方案。
可以通过 WordPress 的内置函数使用 PHP 获取插件目录:
function _get_plugin_directory() {
return __DIR__;
}
这似乎有帮助,但是我不知道是否可以将返回的插件路径传递到我的 JS 文件中。
我的插件结构如下:
/assets // generated by Webpack
- image.png
- main.js
/blocks
/block-example
- image.png // <-- My image asset
- index.js // <-- I want to use image.png here
- index.js // loads in my block
blocks.php
index.js 文件是我想要显示图像的位置,使用标准的 WordPress edit 和 save 函数:
import image from './image.png';
edit: props => {
...
<img src={image} />
}
在 WordPress Gutenberg 编辑器中,图像仅指向图像文件名(./image.png 或 assets/image.png 等),而不是它位于插件目录中的图像的完整路径(即 localhost:8080/plugins/my-blocks/assets/image.png)导致找不到图片。
【问题讨论】:
标签: wordpress webpack wordpress-gutenberg