在WordPress块主题中添加自定义块(不使用插件)

mec1mxoz  于 2022-10-04  发布在  WordPress
关注(0)|答案(2)|浏览(232)

基本上我想开发一个WordPress模块主题。为了容易定制,我想在我的主题中添加一些自定义模块。但我不想为此创建一个插件。自定义模块将在我的主题中。当有人安装我的主题时,他会得到那些与我的主题内置的自定义模块。我如何实现它,我如何组织我的文件夹结构?

2admgd59

2admgd591#

我只是不得不做同样的事情:在我的主题中注册一个定制块。

src/blocks内部创建块

首先,我使用npx @wordpress/create-block my-blocksrc/blocks内部创建了块。该块现在位于{theme}/src/blocks/my-block中。

搭建分块

然后,我使用npm run build构建了这个块。

从Build文件夹注册block.json

最后,我使用Buildblock.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');
jv4diomz

jv4diomz2#

你所需要做的就是在你的主题中创建一个src文件夹,然后把你的块文件夹放在那里(结构如下所示)。

文件夹结构可以是:

--主题文件夹-->src-->块文件夹>块文件(edit.js、index.js、save.js等)

对于块文件:

现在是安装wp-scripts包以使用wp块的时候了。为此,请更新您的Package.json文件,添加以下行。然后在终端中,进入主题文件夹,命令‘npm install’,它将安装你所有的依赖包,然后发出‘npm start’命令。

{
"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函数注册。否则,上面的代码将无法工作。以上代码将仅创建您的文件。

相关问题