Uncaught TypeError: Impossibile leggere la proprietà 'firstChild' di null dopo l'aggiornamento a WordPress 5.5

Aug 24 2020

Ricevo il seguente errore da comment-reply.min.js(che sembra essere un file 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)

Si tratta di un problema noto dopo l'aggiornamento a WordPress 5.5 o è necessario avviare il debug?

Quale sarebbe il modo migliore per affrontarlo?

Non abbiamo cambiato il modello dei commenti ma solo aggiornato all'ultima versione di WordPress.

La parte rilevante del modello è:

<?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>

Dopo un rapido controllo, sembra che stia cercando un elemento con l'id wp-temp-form-div, che non esiste.

E il problema sembra essere qui:

, r = E(h.commentReplyTitleId)
, o = void 0 !== r ? r.firstChild.textContent : "";

Se commentReplyTitleIdnon esiste, rsarà null, quindi diverso da undefined, quindi cerca di ottenere il file firstChild.


Una soluzione rapida che sto usando:

(function () {
    var oldGet = document.getElementById.bind(document)
    document.getElementById = function (id) { return oldGet(id) || undefined; }
})();

Ma a me sembra un bug in 5.5.

Risposte

Rup Sep 05 2020 at 04:45

Questo problema è stato risolto in 5.5.1, commit 48877 :

Correggere il controllo dell'esistenza dell'elemento di risposta in comment-reply.js.

document.getElementById()restituisce nullse non è stato trovato alcun elemento corrispondente, quindi il confronto precedente non ha funzionato come previsto.