故障描述:
今天博主在后台编辑文章时,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错误已经不复存在了,那么道友的问题解决了吗?
(好的就分享到这里,如果您有高见或好的分享,记得留言哦!)
人生短暂,开心每一天!
能让人来访的乐此不疲,这里就是有那么大的魅力!
这个博客不简单,看了还想接着看。