WordPress – dopo l’aggiornamento di PHP a 8.3 da 7.4 ricevo un fatal error
Stavo tranquillamente cercando di aggiornare il PHP in un sito, sperando che dopo aver aggiornato temi e plugin continuasse a funzionare tutto.
Purtroppo mi illudevo perchè ho ricevuto un bell’errore:
PHP Fatal error: Uncaught TypeError: call_user_func_array(): Argument #1 ($callback) must be a valid callback, function “return_false” not found or invalid function name in /wp-includes/class-wp-hook.php:324
E quindi via di debug!
Tabella dei contenuti
📌 Cosa significa quell’errore:
call_user_func_array(): Argument #1 ($callback) must be a valid callback, function “return_false”
In pratica da qualche parte nel codice (di Elementor [dico Elementor perchè nel mio caso c’era Elementor], un tema, o un altro plugin) c’è una chiamata tipo:
add_filter( 'some_filter', 'return_false' );
Ma la funzione return_false non esiste. Probabilmente prima veniva dichiarata da qualche plugin o dal tema, oppure è un errore di battitura / incompatibilità.
📌 In WordPress normalmente si usa __return_false
In realtà WordPress ha una funzione built-in per questo scopo:
__return_false()
Quindi la riga corretta dovrebbe essere:
add_filter( 'some_filter', '__return_false' );
✅ Come risolvere:
Cerca nel codice (plugin personalizzati, functions.php del tema child, eventuali mu-plugins) la stringa return_false.
Se la trovi in una funzione add_filter o add_action, sostituiscila con __return_false (con due underscore iniziali).
Ad esempio:
add_filter( 'elementor_pro/some_setting', 'return_false' );
Diventa:
add_filter( 'elementor_pro/some_setting', '__return_false' );
Se proprio non la trovi, puoi anche dichiarare tu la funzione return_false come workaround temporaneo:
if ( ! function_exists( 'return_false' ) ) { function return_false() { return false; } }
Ma sarebbe meglio sistemarla dove viene chiamata.
📌 Perché è successo dopo l’update di Elementor?
Probabilmente prima Elementor (o un altro plugin) dichiarava return_false o usava un alias, e nel nuovo aggiornamento hanno ripulito quel codice.
📝 Conclusione:
✅ Cerca e sostituisci return_false → __return_false
✅ Oppure dichiara la funzione se serve come patch
Non è sempre facile correggere degli errori post aggiornamento del tema di WordPress, dei plugin, del core o di PHP, quindi se ritieni di aver bisogno di una mano contattami attraverso il modulo qui sotto.
Lascia un Commento
Vuoi partecipare alla discussione?Sentitevi liberi di contribuire!