·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

WordPress 编辑器 怎么添加 自定义按钮

572 1
发表于 2022-11-4 13:48:40 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
为了方便
想给编辑器添加一个h2的按钮

网上的方法
WordPress 6.0版 不适用
WordPress 编辑器 怎么添加 自定义按钮 wordpress,编辑,编辑器,怎么,添加
我要说一句 收起回复

评论1

Discuz智能体Lv.8 发表于 2025-3-15 13:43:15 | 查看全部
针对在 WordPress 6.0 中为编辑器添加自定义 h2 按钮的需求,根据不同的编辑器类型提供两种解决方案:

一、经典编辑器(TinyMCE)增强方案
(适用于使用 Classic Editor 插件的场景)

  1. // 在主题的 functions.php 中添加以下代码
  2. add_filter('mce_buttons', 'custom_tinymce_buttons');
  3. add_filter('mce_external_plugins', 'custom_tinymce_plugins');

  4. function custom_tinymce_buttons($buttons) {
  5.     array_push($buttons, 'h2_button');
  6.     return $buttons;
  7. }

  8. function custom_tinymce_plugins($plugin_array) {
  9.     $plugin_array['h2_button'] = get_stylesheet_directory_uri() . '/h2-button.js';
  10.     return $plugin_array;
  11. }

  12. // 创建主题目录下的 h2-button.js 文件
  13. (function() {
  14.     tinymce.PluginManager.add('h2_button', function(editor, url) {
  15.         editor.addButton('h2_button', {
  16.             title: '插入 H2 标题',
  17.             icon: 'dashicon dashicons-editor-textcolor',
  18.             onclick: function() {
  19.                 editor.formatter.toggle('h2');
  20.                 editor.fire('change');
  21.             }
  22.         });
  23.     });
  24. })();
复制代码


二、古腾堡块编辑器方案
(适配 WordPress 6.0+ 的现代开发方式)

  1. // 创建独立插件或在主题中注册脚本
  2. wp.domReady(() => {
  3.     wp.richText.registerFormatType('custom-h2', {
  4.         title: 'H2 标题',
  5.         tagName: 'h2',
  6.         className: null,
  7.         edit: ({ value, onChange }) => {
  8.             const onToggle = () => {
  9.                 onChange(wp.richText.toggleFormat(value, {
  10.                     type: 'custom-h2'
  11.                 }));
  12.             };

  13.             return (
  14.                 <wp.blockEditor.RichTextToolbarButton
  15.                     icon="editor-textcolor"
  16.                     title="H2 标题"
  17.                     onClick={onToggle}
  18.                     isActive={value.activeFormats.some(format => format.type === 'custom-h2')}
  19.                 />
  20.             );
  21.         }
  22.     });
  23. });
复制代码


实现要点:
1. 脚本需通过 wp_enqueue_script 正确加载
2. 确保依赖项包含:wp-element, wp-rich-text, wp-block-editor
3. 推荐创建独立插件以保证更新安全性

三、通用优化建议
1. 样式适配:添加以下 CSS 保证编辑区视觉统一
  1. .editor-styles-wrapper h2 {
  2.     font-size: 24px;
  3.     margin: 1.5em 0 0.8em;
  4.     line-height: 1.3;
  5. }
复制代码

2. 快捷键支持:可通过注册快捷键提升编辑效率
3. 内容验证:建议添加 sanitize_callback 确保标签安全

注意事项:
1. 修改前务必创建完整站点备份
2. 代码需要根据具体主题结构调整资源路径
3. 推荐在子主题中实施修改以避免更新覆盖
4. 块编辑器方案需要 WordPress 5.0+ 环境支持

如需可视化操作方案,可考虑通过 DZ 插件网(www.dz-x.net)获取跨平台编辑器增强组件,部分解决方案已适配最新 WordPress 核心架构。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.145.91.233,GMT+8, 2025-4-5 23:15 , Processed in 0.293028 second(s), 77 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表