WordPress POST编辑器因多面填充打印错误而崩溃

时间:2019-01-04 作者:Amanahumpa

当试图编辑编辑器无限期加载的wordpress帖子(页面)时,控制台会显示帖子的JS错误。php/polyfill,请参见下面的代码。对我来说,这似乎是一个拼写错误,我不知道这行是在哪里注入的,所以我可以手动更改它。

禁用所有插件并没有改变任何事情,禁用古腾堡也没有改变任何事情。我不是一个很好的程序员,但在我看来,在代码行的最后一个“延迟”之后不应该有一个双引号。

我正在托管服务器环境中的Apache(Domainfactory)上运行WP 5.0.2,主题由Kriesi实现。重新安装Wordpress和主题(从工作安装中复制)到目前为止没有任何改变。

控制台中报告的错误是“参数列表后的未捕获语法错误:丢失)”https://.../wp-admin/post.php?post=23&action=edit&lang=de&classic-editor=1:238

上面写着

( \'fetch\' in window ) || document.write( \'<script src="https://12345678-123.ch/wp-includes/js/dist/vendor/wp-polyfill-fetch.min.js?ver=3.0.0\' defer=\'defer"></scr\' + \'ipt>\' );( document.contains ) || document.write( \'<script src="https://12345678-123.ch/wp-includes/js/dist/vendor/wp-polyfill-node-contains.min.js?ver=3.26.0-0\' defer=\'defer"></scr\' + \'ipt>\' );( window.FormData && window.FormData.prototype.keys ) || document.write( \'<script src="https://12345678-123.ch/wp-includes/js/dist/vendor/wp-polyfill-formdata.min.js?ver=3.0.12\' defer=\'defer"></scr\' + \'ipt>\' );( Element.prototype.matches && Element.prototype.closest ) || document.write( \'<script src="https://12345678-123.ch/wp-includes/js/dist/vendor/wp-polyfill-element-closest.min.js?ver=2.0.2\' defer=\'defer"></scr\' + \'ipt>\' );
任何想法都将不胜感激。

3 个回复
最合适的回答,由SO网友:Kostiantyn Petlia 整理而成

以下是答案:WordPress v5.0.3 Gutenberg & JS error "Uncaught SyntaxError: missing ) after argument list"

最简单的方法:查找(&A);删除在脚本中添加“defer”的PHP挂钩(在function.PHP文件中)。或者,如果你有技能,你可以编辑钩子的代码。原因:与引号(“&;”)的混淆/冲突导致JS崩溃。

关于“延迟”,您可以在此处阅读:https://www.w3schools.com/tags/att_script_defer.asp 这可能是由于您网站上的速度优化。

SO网友:Jonnyauk

好吧,所以我自己努力想找到一个答案,但这对我来说很有效。我去掉了脚本标记上的type=\'text/javascript\',因为它不是有效HTML5所必需的,但WordPress坚持在您登录脚本时包含它。我在我的主题中有一个类似于下面的函数来处理这个问题,所以我只是在admin中停止了它的运行,并删除了错误-您的里程可能会有所不同,但可能会检查您的主题或插件是否有类似的内容;)

/**
 *
 * WordPress insists on inserting invalid javascript script tag definitions when enqueuing
 * This removes this cruft - to check in the future - will WordPress get patched to support this?
 *
 */
add_filter( \'script_loader_tag\', \'mywfx_html5_clean_js_tags\' );
function mywfx_html5_clean_js_tags( $input ) {

 if ( !is_admin() ) {

    $input = str_replace( "type=\'text/javascript\' ", \'\', $input );
    return str_replace( "\'", \'"\', $input );

 } else {

    return $input;

 }

}

SO网友:Amanahumpa

也许从注入的代码中学到的教训是:Check all potencial sources of code injection.

结果是在子主题的函数中放入了代码。php。在提出这个问题的时候,在那里寻找问题是“没有必要的”,因为不这样做是愚蠢的。

我对所提供的帮助感到抱歉和感激。非常感谢。

相关推荐

EDITOR-Style.css功能

场景:我有一个客户很难理解,他在WordPress面板上看到的帖子字体样式不一定是前台显示的样式。TinyMCE插件的过度使用导致每个文本块标记内部都有一个跨度,因为他试图使编辑器与前面已经发生的事情相匹配,因为有一个子主题。由于这种做法,网站上的文本格式不统一。目标:我想让编辑器的字体(乔治亚州)与他想要的字体在前面匹配(而这正发生在前面)。此外,我想更改格式菜单,以匹配我们商定的子主题CSS。设置:他使用的主题没有编辑风格。css。我已经添加了一个,但我的研究导致了信息的混乱,而不是一套清晰的说明&l