- 资源介绍
- 更新记录
- 安装教程
大多WordPress站长都表示用不习惯古腾堡编辑器,甚至在WordPress的商店里评分还是负数,但是我个人还是挺喜欢用这个编辑器的。比起之前那个大型富文本输入框,这种编辑器可谓即优雅又实用。
但这只是个开始,个人认为,能够有效的自定义模块,才是古腾堡编辑器最有优势的地方。
关于古腾堡编辑器,官方之前给了一个初步的文档,但是那个文档是以插件化为教程进行的,对于主题设计者而言,更希望在自己的主题里直接加入古腾堡自定义模块比较方便,因此本文的方向是在主题里直接往古腾堡编辑器里插入自定义模块。
今天我们来了解下如何给古腾堡编辑器添加自定义模块。
加载古腾堡自定义模板
//加载古腾堡自定义模板
function my_gutenberg_block(){
//注册古腾堡编辑器
wp_register_script( \'block-js\', get_template_directory_uri() . \'/extends/src/blocks.js\', array(\'wp-blocks\', \'wp-element\', \'wp-editor\', \'wp-i18n\'), \'1.0.0\' );
//插入模块
//fishtheme/block可自定义, 比如: demo/block
register_block_type( \'fishtheme/block\', array(
\'editor_script\' => \'block-js\'
) );
}
add_action( \'init\', \'my_gutenberg_block\' );
新建blocks.js
在目前使用的WordPress主题目录下,新建一个src的文件夹,并新建blocks.js。
blocks.js文件路径可以自定义,注意把上面代码里的对应路径也改一下就行。
编辑blocks.js
这个是古腾堡核心文件,基本所有的功能都在这里。
//js代码
//引入对应方法, 需要注意的是这里引用了4个方法, 那么在底部也需要window.wp.回调这4个方法
//这4个方法的来源是functions.php里的wp_register_script时array()里传入, 需要注意一一对应
(function (blocks, element, editor, i18n) {
var el = element.createElement; //用于输出HTML
var RichText = editor.RichText; //用于获取文本输入块
blocks.registerBlockType(\'gutenberg-examples/example-03-editable\', {
title: \'测试模块\', //标题
icon: \'universal-access-alt\', //图标
category: \'layout\', //对应栏目
attributes: { //模块的属性
content: {
type: \'array\',
source: \'children\',
selector: \'p\',
},
},
//编辑时
edit: function (props) {
//获取模块输入的值
var content = props.attributes.content;
//点击输入框时用的方法
function onChangeContent(newContent) {
//将输入框里的内容输出到模块属性里
props.setAttributes({ content: newContent });
}
//返回HTML
//el的方法格式为: el( 对象, 属性, 值 ); 可以相互嵌套
//例如:
// el(
// \'div\',
// {
// className: \'demo-class\',
// },
// \'DEMO数据\'
// );
// 输出为: DEMO数据
return el(
RichText,
{
tagName: \'p\',
className: props.className,
onChange: onChangeContent,
value: content,
}
);
},
//保存时
save: function (props) {
//保存时返回的HTML
return el(RichText.Content, {
tagName: \'p\', value: props.attributes.content,
});
},
});
}(
window.wp.blocks,
window.wp.element,
window.wp.editor,
window.wp.i18n
));
查看效果
以上步骤完成后,在编辑器页面刷新,然后添加区块,看看是不是添加成功了。
此为官网提供的demo,如果想更深一步的开发自己需要的复杂的模块,请直接参考文章开始的《Block Editor Handbook》。
猜你喜欢
-
【WordPress美化教程】鼠标点击页面出现富强自由等文字特效_52弹弹堂-5466shop.cn
2020-08-28 -
解决WordPress升级时提示正在执行例行维护,请一分钟后回来_52弹弹堂-5466shop.cn
2020-08-28 -
WordPress优化之去掉分类链接中的category_52弹弹堂-5466shop.cn
2020-08-28 -
WordPress如何调用当前文章作者头像_52弹弹堂-5466shop.cn
2020-08-28 -
WordPress自动截取部分文章内容做为文章摘要_52弹弹堂-5466shop.cn
2020-08-28 -
WordPress PostType(自定义文章类型)功能介绍_52弹弹堂-5466shop.cn
2020-08-28 -
WordPress不用插件实现文章AJAX点赞、文章点赞排行_52弹弹堂-5466shop.cn
2020-08-28 -
给WordPress博客添加返回顶部/底部的教程_52弹弹堂-5466shop.cn
2020-08-28 -
WordPress获取自定义文章类型分类法的所有文章循环_52弹弹堂-5466shop.cn
2020-08-28 -
20年最新WordPress安装详细教程,还在问wordpress如何安装?这篇文章解决问题_52弹弹堂-5466shop.cn
2020-08-28
-
WordPress主题在线一键生成网站underscores_52弹弹堂-5466shop.cn
2020-08-28 -
WordPress获取文章所属分类名称、分类ID、分类别名_52弹弹堂-5466shop.cn
2020-08-28 -
WordPress后台如何查看当天用户注册数量以及用户注册时间排序教程_52弹弹堂-5466shop.cn
2020-08-28 -
wordpress修改wp-admin隐藏后台管理登录地址确保WordPress网站后台安全_52弹弹堂-5466shop.cn
2020-08-28 -
WordPress列表上下页数字分页导航代码_52弹弹堂-5466shop.cn
2020-08-28 -
WordPress如何在后台显示自带友情链接?_52弹弹堂-5466shop.cn
2020-08-28 -
WordPress如何实现部分文章内容需要登录后才能查看_52弹弹堂-5466shop.cn
2020-08-28 -
WordPress后台如何禁止编辑主题和插件_52弹弹堂-5466shop.cn
2020-08-28 -
Wordpress博客如何获取站点总访问量_52弹弹堂-5466shop.cn
2020-08-28 -
WordPress搜索结果排除指定页面/文章/自定义分类_52弹弹堂-5466shop.cn
2020-08-28
猜你在找
5466资源网 » WordPress如何给古腾堡编辑器添加自定义模块_52弹弹堂-5466shop.cn
- 2020-08-28Hi,初次和大家见面了,请多关照!