You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP 8.0兼容改造求助:Call to undefined function create_function()报错

解决PHP 8.0下create_function()未定义的致命错误

错误原因

PHP 8.0及更高版本已彻底移除create_function()函数,你的主题代码第67行使用了该函数,直接触发致命错误。

兼容PHP 8.0的修改代码

将主题文件custommenu.php的内容替换为以下代码:

<?php

class WP_Nav_Menu_Widget_Desc extends WP_Widget {

    function __construct() {
        parent::__construct(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', function() {
    register_widget("WP_Nav_Menu_Widget_Desc");
});
?>

关键修改说明

  1. 构造函数规范:将parent::WP_Widget(...)改为parent::__construct(...),符合PHP 7+面向对象的构造函数调用标准。
  2. 替换废弃函数:把最后一行的create_function()调用替换为PHP 5.3+支持的匿名函数,这是解决本次致命错误的核心操作。

内容的提问来源于stack exchange,提问作者Nele Beullens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:55:15