J'ai reçu ce message sur la page d'accueil du site :
Erreur fatale : erreur non détectée : appel à la fonction non définie create_function() dans /customers/7/e/7/jovobytes.be/httpd.www/wp-content/themes/inovado/framework/inc/widgets/custommenu. php:67 Trace de pile : #0 /customers/7/e/7/jovobytes.be/httpd.www/wp-content/themes/inovado/functions.php(39) : include_once() #1 /customers/7/ e/7/jovobytes.be/httpd.www/wp-settings.php(566): include('/customers/7/e/...') #2 /customers/7/e/7/jovobytes.be /httpd.www/wp-config.php(96): require_once('/customers/7/e/...') #3 /customers/7/e/7/jovobytes.be/httpd.www/wp- load.php(50) : require_once('/customers/7/e/...') #4 /customers/7/e/7/jovobytes.be/httpd.www/wp-blog-header.php(13 ): require_once('/customers/7/e/...') #5 /customers/7/e/7/jovobytes.be/httpd.www/index.php(17): require('/customers/7 /e/...') #6 {main} lancé dans /customers/7/e/7/jovobytes.be/httpd.www/wp-content/themes/inovado/framework/inc/widgets/custommenu.php Aller à la ligne 67
J'ai donc recherché les fichiers correspondant au thème et j'ai dû réécrire le code pour être compatible avec PHP 8.0. Toute aide serait grandement appréciée ! ! !
'Display a Side Navigation')); } function widget($args, $instance) { // Get menu $nav_menu = wp_get_nav_menu_object( $instance['nav_menu'] ); if ( !$nav_menu ) return; echo $args['before_widget']; //if ( !empty($instance['title']) ) // echo $args['before_title'] . $instance['title'] . $args['after_title']; wp_nav_menu( array( 'depth' => 1, 'menu' => $nav_menu ) ); echo $args['after_widget']; } function update( $new_instance, $old_instance ) { $instance['nav_menu'] = (int) $new_instance['nav_menu']; return $instance; } function form( $instance ) { $nav_menu = isset( $instance['nav_menu'] ) ? $instance['nav_menu'] : ''; // Get menus $menus = get_terms( 'nav_menu', array( 'hide_empty' => false ) ); // If no menus exists, direct the user to go and create some. if ( !$menus ) { echo ''. sprintf( __('No menus have been created yet. Create some.'), admin_url('nav-menus.php') ) .'
'; return; } ?>
Cette opération très spécifique peut être réécrite ainsi :
Cependant, le widget lui-même utilise une syntaxe de constructeur à l'ancienne, elle doit donc également être modifiée.
Cela fait un moment que je n'ai pas vu la syntaxe des constructeurs, donc je ne serais pas surpris si davantage de code est également cassé. Vous devriez vraiment envisager de mettre à niveau votre thème/plugin vers une version plus récente ou de ne pas mettre à niveau votre version PHP.