WordPress编辑器添加或删除自定义按钮(QTags)方法

WordPress是一款由PHP语言开发的博客系统,因其易用性、易扩展性、 功能强大、美观和对搜索引擎友好等而闻名于世,其市场占有率超过30%。尽管WordPress系统具有以上的优点,但是其编辑器一直以来都饱受诟病。特别是可视化编辑器,其排版不符合中文习惯,使用起来浪费时间。Wordpress 5.0以后使用了区块编辑器,大量博主试用后吐槽新的编辑器还不如经典编辑器好用,纷纷寻找切换回经典编辑器的方法。好在官方出了一个经典编辑器的插件,才解决了众多博主的烦恼。

在代码编辑器中,可以使用html代码来准确地控制文章版式。但编写html代码也需要耗费一定的时间,如果能将常用的html代码定义成编辑器上的按钮, 那么在写作时就方便多了。同时,也可以将不常用的按钮删除,以保持编辑器界面的清爽。

实现思路

通过修改WordPress的系统文件quicktags.js可以实现为WordPress编辑器添加自定按钮的功能。随着WordPress版本的更迭,这种方法已经失效。即使未失效,修改系统文件也存在一定的风险,因此不再推荐。

通过上网搜索发现,通过修改模板函数可以实现为WordPress编辑器添加/删除自定按钮。添加按钮时采用QTags.addButton( ”, ”, ”, ”)函数来实现。该函数共有四个参数,分别表示自定义按钮的ID、按钮的显示名称、输入内容以及关闭内容。

同时,通过修改edButtons[index]=null语句中index的数值,可以删除对应的按钮。例如其中B加粗按钮和斜体对应的index值如下。

edButtons[10]  = new qt.TagButton( 'strong', 'b', '', '', '', '');
edButtons[20]  = new qt.TagButton( 'em', 'i', '', '', '', '', '');

修改模板函数文件(function.php)

找到当前使用主题所在的文件夹,用Notepad++或者Sublime text打开其中的function.php文件,在该文件的最后添加以下代码。

//添加HTML编辑器自定义快捷标签按钮

add_action('after_wp_tiny_mce', 'add_button_mce');
function add_button_mce($mce_settings) {
?>
<script type="text/javascript">
edButtons[110]=null;
QTags.addButton( 'p', 'p', '<p style="text-indent: 2em;">', '</p>');
QTags.addButton( 'h2', 'h2', '<h2>', '</h2>');
QTags.addButton( 'h3', 'h3', '<h3>', '</h3>');
QTags.addButton( 'h4', 'h4', '<h4>', '</h4>');
QTags.addButton( 'h5', 'h5', '<h5>', '</h5>');
QTags.addButton( 'inline-highlight', 'inline-highlight', '<span id="inline-code-highlight">', '</span>');
</script>
<?php
}

上述代码中笔者共添加了5个自定义按钮,均是笔者写作时常用的html标签,分别是段落标签p,标题标签h3、h4、h5以及span标签。为了节省写作时间,笔者还将常用的标签样式集成到了自定义标签中。比如为段落标签p集成了一个首行缩进两字符的样式,以符合中文的写作习惯。为inline-highlight按钮集成了一个id名称为inline-code-highlight的样式。

修改主题样式文件

如果在上述添加的标签中没有集成css样式的id名称/class名称,或者如上述p标签一样将css样式直接集成在了按钮中,可以忽略本节。如果集成了css样式的id名称/class名称,需要在主题的样式文件中定义该样式,否则标签将无法正常使用。

补充:对于QTags.addButton函数的详细用法请参照:https://codex.wordpress.org/Quicktags_API

PHP

PHP核心编程 MYSQL扩展 知识点笔记整理(二)

2021-8-8 15:17:57

网络攻防

宝塔面板nginx环境禁止ip访问 防止网站被恶意解析成镜像站

2021-12-10 15:14:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索
Array ( [0] => post [1] => user [2] => document [3] => newsflashes )