基本上我想开发一个WordPress模块主题。为了容易定制,我想在我的主题中添加一些自定义模块。但我不想为此创建一个插件。自定义模块将在我的主题中。当有人安装我的主题时,他会得到那些与我的主题内置的自定义模块。我如何实现它,我如何组织我的文件夹结构?
2admgd591#
我只是不得不做同样的事情:在我的主题中注册一个定制块。
src/blocks
首先,我使用npx @wordpress/create-block my-block在src/blocks内部创建了块。该块现在位于{theme}/src/blocks/my-block中。
npx @wordpress/create-block my-block
{theme}/src/blocks/my-block
然后,我使用npm run build构建了这个块。
npm run build
block.json
最后,我使用Build的block.json元数据文件注册了该块:
unctions.php
function register_my_block() { register_block_type( dirname(__FILE__) . '/src/blocks/my-block/build/block.json' ); } add_action('init', 'register_my_block');
jv4diomz2#
你所需要做的就是在你的主题中创建一个src文件夹,然后把你的块文件夹放在那里(结构如下所示)。
文件夹结构可以是:
--主题文件夹-->src-->块文件夹>块文件(edit.js、index.js、save.js等)
对于块文件:
现在是安装wp-scripts包以使用wp块的时候了。为此,请更新您的Package.json文件,添加以下行。然后在终端中,进入主题文件夹,命令‘npm install’,它将安装你所有的依赖包,然后发出‘npm start’命令。
wp-scripts
{ "main": "build/index.js", "scripts": { "build": "wp-scripts build", "format": "wp-scripts format", "lint:css": "wp-scripts lint-style", "lint:js": "wp-scripts lint-js", "packages-update": "wp-scripts packages-update", "plugin-zip": "wp-scripts plugin-zip", "start": "wp-scripts start" }, "devDependencies": { "@wordpress/scripts": "^23.4.0" } }
注:PHP方式需要通过register_block_type函数注册块,JS方式需要通过registerBlockType函数注册。否则,上面的代码将无法工作。以上代码将仅创建您的文件。
register_block_type
registerBlockType
2条答案
按热度按时间2admgd591#
我只是不得不做同样的事情:在我的主题中注册一个定制块。
在
src/blocks
内部创建块首先,我使用
npx @wordpress/create-block my-block
在src/blocks
内部创建了块。该块现在位于{theme}/src/blocks/my-block
中。搭建分块
然后,我使用
npm run build
构建了这个块。从Build文件夹注册
block.json
最后,我使用Build的
block.json
元数据文件注册了该块:unctions.php
jv4diomz2#
你所需要做的就是在你的主题中创建一个src文件夹,然后把你的块文件夹放在那里(结构如下所示)。
文件夹结构可以是:
--主题文件夹-->src-->块文件夹>块文件(edit.js、index.js、save.js等)
对于块文件:
现在是安装
wp-scripts
包以使用wp块的时候了。为此,请更新您的Package.json文件,添加以下行。然后在终端中,进入主题文件夹,命令‘npm install’,它将安装你所有的依赖包,然后发出‘npm start’命令。注:PHP方式需要通过
register_block_type
函数注册块,JS方式需要通过registerBlockType
函数注册。否则,上面的代码将无法工作。以上代码将仅创建您的文件。