【wordpress】Uncaught ReferenceError: QTags is not defined

故障描述:

今天博主在后台编辑文章时,F12打开站点检查,发现两个错误发生:捕获到参考错误、Qtags没有被定义

<Uncaught ReferenceError: QTags is not defined      edit.php:2900>
<Uncaught ReferenceError: QTags is not defined      edit.php:2902>

点击定位到代码文件内,发现是后台文本编辑器自定义的两个按钮Qtags.addButton函数的报错:

QTags.addButton( 'collapses', '展开/收缩按钮', '[collapses title="说明文字"]','[/collapses]' );
QTags.addButton( 'pre_core>','pre_core','<pre class="line-numbers"><code class="language-markup">','展示代码处</code></pre>' );

这两个正是之前博主为小站添加的文章隐藏/显示、代码高亮的两个功能,为了方便调用,在后台文本编辑器的工具栏添加的两个按钮,具体可参考以下两个博文:

【wordpress】文章添加展开折叠隐藏功能 、【wordpress】文章无插件实现高亮代码

关于本此bug,以上两个博文已更新修正,那么我们一起来看一看本此错误关键点:Qtags 没被定义的js错误

故障处理:

关于Quicktags docs recommend code causing JS error:Uncaught ReferenceError: QTags is not defined:

网上搜索了一下,可以参考文献:wordpress.org、QTags is not defined

大致的意思,就是说,我们使用“quicktags(快速标签)”附和在addButton的php的列队中调用或是add_action直接在php中使用js的的时候,而不是依赖于quicktags直接被php调用,出于安全还是什么的,我们需要在使用前对检查qtags phpDoc添加注释;如果qtags对象没有被定义,则检查就会报错:QTags is not defined;

所以解决的方法也很简单,简单的定义一下就可以:

if ( typeof QTags != 'undefined' ) { QTags.addButton(...) } 

So,本站中,博主针对这两个功能按钮,添加了undefined定义:

文章折叠、隐藏功能按钮添加到后台文本编辑器:

function appthemes_add_collapse() {
?><script type="text/javascript">if ( typeof QTags != 'undefined' ) {
QTags.addButton( 'collapses', '展开/收缩按钮', '[collapses title="说明文字"]','[/collapses]' );
}</script><?php }
add_action('admin_print_footer_scripts', 'appthemes_add_collapse' );

Prism实现的高亮代码功能按钮添加到后台文本编辑器:

function appthemes_add_pre_core() {
?><script type="text/javascript">if ( typeof QTags != 'undefined' ) {
QTags.addButton( 'pre_core>','pre_core','<pre class="line-numbers"><code class="language-markup">','c</code></pre>' );
}</script><?php }
add_action('admin_print_footer_scripts', 'appthemes_add_pre_core' );

然后,刷新页面,关于qtags 没有被定义的js错误已经不复存在了,那么道友的问题解决了吗?


(好的就分享到这里,如果您有高见或好的分享,记得留言哦!)


原创文章,转载请注明:转自于公牛博客

本文链接地址:【wordpress】Uncaught ReferenceError: QTags is not defined

标签:
5
祝福我们的祖国繁荣昌盛
  • 请尽情挥洒您的笔墨!