Heim > Fragen und Antworten > Hauptteil
Ich habe diese Nachricht auf der Startseite der Website erhalten:
Schwerwiegender Fehler: Nicht erfasster Fehler: Aufruf der undefinierten Funktion create_function() in /customers/7/e/7/jovobytes.be/httpd.www/wp-content/themes/inovado/framework/inc/widgets/custommenu. php:67 Stack Trace: #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} wirft /customers/7/e/7/jovobytes.be/httpd.www/wp-content/themes/inovado/framework/inc/widgets/custommenu.php ein bis Zeile 67
Also habe ich nach den Dateien gesucht, die zum Thema passen, und musste den Code neu schreiben, um ihn mit PHP 8.0 kompatibel zu machen. Jede Hilfe wäre sehr dankbar! ! !
<?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
这个非常具体的操作可以重写为:
add_action( 'widgets_init', function() { register_widget("WP_Nav_Menu_Widget_Desc"); } );
但是,小部件本身使用旧式构造函数语法,因此也需要更改。
class WP_Nav_Menu_Widget_Desc extends WP_Widget {
function __construct() {
parent::__construct(false, 'minti.SideNav', array('description' => 'Display a Side Navigation'));
}
}
自从我看到构造函数语法以来已经有一段时间了,所以如果更多的代码也被破坏,我不会感到惊讶。您确实应该考虑将主题/插件升级到更新版本,或者不升级您的 PHP 版本