未捕获的TypeError:升级到WordPress 5.5后无法读取Null的属性‘FirstChild’

时间:2020-08-23 作者:Ionică Bizău

我从中得到以下错误comment-reply.min.js (似乎是WordPress文件):

Uncaught TypeError: Cannot read property \'firstChild\' of null
    at comment-reply.min.js?ver=026d5828124b6319675d89d24f212b97:2
    at Object.moveForm (comment-reply.min.js?ver=026d5828124b6319675d89d24f212b97:2)
    at HTMLAnchorElement.a (comment-reply.min.js?ver=026d5828124b6319675d89d24f212b97:2)
这是升级到WordPress 5.5后出现的已知问题,还是应该开始调试它?

解决这个问题的最佳方法是什么?

我们没有更改评论模板,只是升级到了WordPress的最新版本。

模板的相关部分为:

<?php comment_id_fields($_GET["post_id"]); ?>
<?php do_action(\'comment_form\', $_GET["post_id"]); ?>
            
<div class="fl-comment-form-cancel">
   <?php cancel_comment_reply_link(); ?>
</div>
快速检查后,它似乎正在搜索id为的元素wp-temp-form-div, 它不存在。

问题似乎就在这里:

, r = E(h.commentReplyTitleId)
, o = void 0 !== r ? r.firstChild.textContent : "";
如果commentReplyTitleId 不存在,r 将是null, 因此不同于undefined, 所以它试图得到firstChild.

我正在使用的快速解决方法:

(function () {
    var oldGet = document.getElementById.bind(document)
    document.getElementById = function (id) { return oldGet(id) || undefined; }
})();
但对我来说,这似乎是5.5中的一个bug。

1 个回复
SO网友:Rup

这已在5.5.1中修复,commit 48877:

更正中是否存在reply元素的检查comment-reply.js.

document.getElementById() 退货null 如果没有找到匹配的元素,那么前面的比较就无法按预期进行。

相关推荐

Wpdb->查询向phpMyAdmin返回不同的值

我正在尝试构建一个查询db和求和的短代码。以下是我目前掌握的情况:function my_plugin_name_count_people() { global $wpdb; return $wpdb->query ("SELECT COALESCE(SUM(`column_one`), column_two ,0) FROM `table_name` WHERE `booking_date` = CURDATE() -10"); } &#