tags search: wordpress
Sistemare WPBakery Visual Composer perché supporti php8
Alcuni di voi avranno già visto questo errore, altri lo vedranno man mano che gli hosting dismetteranno il supporto a php7:
Uncaught Error: Call to undefined function each() in /var/www/myoldwebsite/wp-content/plugins/js_composer/include/classes/core/class-vc-mapper.php:111
Come risolvere? Aggiornare il sito non è sempre un'opzione e il passaggio ad altri page builder non è affatto indolore.
Per fortuna, dopo un po' di tentativi ho scoperto che l'errore è semplice da correggere e chiunque, con un minimo di esperienza in programmazione, può riuscirci.
Il problema è la funzione each() usata in due punti nel file class-vc-mapper.php. Questa funzione è stata deprecata e non esiste più su php8. Per questo motivo è necessario (e sufficiente) sostituirla con un foreach.
Quindi, a riga 111 bisognerà sostituire questo codice
while ( $activity = each( $this->init_activity ) ) {
foreach ( $this->init_activity as $activity ) {
mentre, a riga 186, questo codice
while ( $activity = each( $this->element_activities[ $tag ] ) ) {
foreach ( $this->element_activities[ $tag ] as $activity ) {
Fine!
Davvero, non serve altro. Se non ci sono problemi di incompatibilità con altri plugin o con il tema, il vostro sito wordpress riprenderà a funzionare correttamente.