Rumah > Soal Jawab > teks badan
Saya menerima mesej ini di halaman utama laman web:
Ralat Maut: Ralat Tidak Ditangkap: Panggil ke fungsi yang tidak ditentukan create_function() dalam /customers/7/e/7/jovobytes.be/httpd.www/wp-content/themes/inovado/framework/inc/widgets/custommenu. php:67 Surih tindanan: #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 {utama} dilemparkan ke dalam /customers/7/e/7/jovobytes.be/httpd.www/wp-content/themes/inovado/framework/inc/widgets/custommenu.php Pergi ke baris 67
Jadi saya mencari fail yang sepadan dengan tema dan perlu menulis semula kod agar serasi dengan PHP 8.0. Sebarang bantuan akan sangat dihargai! ! !
<?php class WP_Nav_Menu_Widget_Desc extends WP_Widget { function __construct() { parent::WP_Widget(false, 'minti.SideNav', array('description' => '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 '<p>'. sprintf( __('No menus have been created yet. <a href="%s">Create some</a>.'), admin_url('nav-menus.php') ) .'</p>'; return; } ?> <p> <label for="<?php echo $this->get_field_id('nav_menu'); ?>"><?php _e('Select Menu:'); ?></label> <select id="<?php echo $this->get_field_id('nav_menu'); ?>" name="<?php echo $this->get_field_name('nav_menu'); ?>"> <?php foreach ( $menus as $menu ) { $selected = $nav_menu == $menu->term_id ? ' selected="selected"' : ''; echo '<option'. $selected .' value="'. $menu->term_id .'">'. $menu->name .'</option>'; } ?> </select> </p> <?php } } add_action('widgets_init', create_function('', 'return register_widget("WP_Nav_Menu_Widget_Desc");')); ?>
P粉9211300672023-11-17 11:33:44
Operasi yang sangat khusus ini boleh ditulis semula sebagai:
add_action( 'widgets_init', function() { register_widget("WP_Nav_Menu_Widget_Desc"); } );
Walau bagaimanapun, widget itu sendiri menggunakan sintaks pembina gaya lama, jadi itu perlu diubah juga.
class WP_Nav_Menu_Widget_Desc extends WP_Widget {
function __construct() {
parent::__construct(false, 'minti.SideNav', array('description' => 'Display a Side Navigation'));
}
}
Sudah lama saya tidak melihat sintaks pembina, jadi saya tidak akan terkejut jika lebih banyak kod rosak juga. Anda harus benar-benar mempertimbangkan untuk menaik taraf tema/plugin anda kepada versi yang lebih baharu atau tidakmenaik taraf versi PHP anda