【问题标题】:error 500: PHP Fatal error: Cannot redeclare thim_widgets_inits()错误 500:PHP 致命错误:无法重新声明 thim_widgets_inits()
【发布时间】:2017-05-22 07:04:37
【问题描述】:

我的页面 tolkeuddannelsen.dk 出现错误 500。通过错误日志,我可以确定它在我的主题 function.php 中的第 93-185 行导致了问题。这是我的虚拟主机所说的: 后端致命错误:PHP 致命错误:无法在 /var/www/www.tolkeuddannelsen.dk/www/ 中重新声明 thim_widgets_inits()(之前在 /var/www/www.tolkeuddannelsen.dk/www/functions.php:93 中声明) wp-content/themes/elearningwp/functions.php 在第 185 行\n,引用者:http://tolkeuddannelsen.dk/

这些行中的代码如下所示。

function thim_widgets_inits() {
    register_sidebar( array(
        'name'          => __( 'Sidebar 1', 'thim' ),
        'id'            => 'sidebar-1',
        'description'   => 'Left Sidebar',
        'before_widget' => '<aside id="%1$s" class="widget %2$s">',
        'after_widget'  => '</aside>',
        'before_title'  => '<h4 class="widget-title">',
        'after_title'   => '</h4>',
    ) );

//  register_sidebar( array(
//      'name'          => __( 'Sidebar 2', 'thim' ),
//      'id'            => 'sidebar-2',
//      'description'   => 'Right Sidebar',
//      'before_widget' => '<aside id="%1$s" class="widget %2$s">',
//      'after_widget'  => '</aside>',
//      'before_title'  => '<h4 class="widget-title">',
//      'after_title'   => '</h4>',
//  ) );

    register_sidebar( array(
        'name'          => 'Top Drawer',
        'id'            => 'drawer_top',
        'description'   => __( 'Drawer Top', 'thim' ),
        'before_widget' => '<aside id="%1$s" class="widget %2$s">',
        'after_widget'  => '</aside>',
        'before_title'  => '<h4 class="widget-title">',
        'after_title'   => '</h4>',
    ) );
    register_sidebar( array(
        'name'          => __( 'Offcanvas', 'thim' ),
        'id'            => 'offcanvas_sidebar',
        'description'   => 'Drawer Right',
        'before_widget' => '<aside id="%1$s" class="widget %2$s">',
        'after_widget'  => '</aside>',
        'before_title'  => '<h4 class="widget-title">',
        'after_title'   => '</h4>',
    ) );

    register_sidebar( array(
        'name'          => 'Menu Right',
        'id'            => 'menu_right',
        'description'   => __( 'Menu Right', 'thim' ),
        'before_widget' => '<li id="%1$s" class="widget %2$s">',
        'after_widget'  => '</li>',
        'before_title'  => '<h3>',
        'after_title'   => '</h3>',
    ) );
    register_sidebar( array(
        'name'          => 'Footer',
        'id'            => 'footer',
        'description'   => __( 'Footer Sidebar', 'thim' ),
        'before_widget' => '<aside id="%1$s" class="widget %2$s footer_widget">',
        'after_widget'  => '</aside>',
        'before_title'  => '<h4 class="widget-title">',
        'after_title'   => '</h4>',
    ) );

    register_sidebar( array(
        'name'          => 'Copyright',
        'id'            => 'copyright',
        'description'   => __( 'Copyright', 'thim' ),
        'before_widget' => '<aside id="%1$s" class="widget %2$s">',
        'after_widget'  => '</aside>',
        'before_title'  => '<h4 class="widget-title">',
        'after_title'   => '</h4>',
    ) );
    register_sidebar( array(
        'name'          => __( 'Sidebar Shop', 'thim' ),
        'id'            => 'shop',
        'description'   => 'Shop Sidebar',
        'before_widget' => '<aside id="%1$s" class="widget %2$s">',
        'after_widget'  => '</aside>',
        'before_title'  => '<h4 class="widget-title">',
        'after_title'   => '</h4>',
    ) );
    if ( class_exists( 'LearnPress' ) ) {
        register_sidebar( array(
            'name'          => 'Top Sidebar Courses',
            'id'            => 'top_sidebar_courses',
            'description'   => __( 'Top Sidebar Courses', 'thim' ),
            'before_widget' => '',
            'after_widget'  => '',
            'before_title'  => '<h3>',
            'after_title'   => '</h3>',
        ) );

        register_sidebar( array(
            'name'          => 'Sidebar Courses',
            'id'            => 'sidebar_courses',
            'description'   => __( 'Sidebar Courses', 'thim' ),
            'before_widget' => '<aside id="%1$s" class="widget %2$s">',
            'after_widget'  => '</aside>',
            'before_title'  => '<h4 class="widget-title">',
            'after_title'   => '</h4>',
        ) );
    }
}

谁能帮我解决这个问题?谢谢!

【问题讨论】:

    标签: php wordpress widget fatal-error redeclaration


    【解决方案1】:

    这是因为你正在重新声明你已经声明的函数。

    使用这个:

    function thim_widgets_inits_child() {
        register_sidebar( array(
            'name'          => __( 'Sidebar 1', 'thim' ),
            'id'            => 'sidebar-1',
            'description'   => 'Left Sidebar',
            'before_widget' => '<aside id="%1$s" class="widget %2$s">',
            'after_widget'  => '</aside>',
            'before_title'  => '<h4 class="widget-title">',
            'after_title'   => '</h4>',
        ) );
    
    //  register_sidebar( array(
    //      'name'          => __( 'Sidebar 2', 'thim' ),
    //      'id'            => 'sidebar-2',
    //      'description'   => 'Right Sidebar',
    //      'before_widget' => '<aside id="%1$s" class="widget %2$s">',
    //      'after_widget'  => '</aside>',
    //      'before_title'  => '<h4 class="widget-title">',
    //      'after_title'   => '</h4>',
    //  ) );
    
        register_sidebar( array(
            'name'          => 'Top Drawer',
            'id'            => 'drawer_top',
            'description'   => __( 'Drawer Top', 'thim' ),
            'before_widget' => '<aside id="%1$s" class="widget %2$s">',
            'after_widget'  => '</aside>',
            'before_title'  => '<h4 class="widget-title">',
            'after_title'   => '</h4>',
        ) );
        register_sidebar( array(
            'name'          => __( 'Offcanvas', 'thim' ),
            'id'            => 'offcanvas_sidebar',
            'description'   => 'Drawer Right',
            'before_widget' => '<aside id="%1$s" class="widget %2$s">',
            'after_widget'  => '</aside>',
            'before_title'  => '<h4 class="widget-title">',
            'after_title'   => '</h4>',
        ) );
    
        register_sidebar( array(
            'name'          => 'Menu Right',
            'id'            => 'menu_right',
            'description'   => __( 'Menu Right', 'thim' ),
            'before_widget' => '<li id="%1$s" class="widget %2$s">',
            'after_widget'  => '</li>',
            'before_title'  => '<h3>',
            'after_title'   => '</h3>',
        ) );
        register_sidebar( array(
            'name'          => 'Footer',
            'id'            => 'footer',
            'description'   => __( 'Footer Sidebar', 'thim' ),
            'before_widget' => '<aside id="%1$s" class="widget %2$s footer_widget">',
            'after_widget'  => '</aside>',
            'before_title'  => '<h4 class="widget-title">',
            'after_title'   => '</h4>',
        ) );
    
        register_sidebar( array(
            'name'          => 'Copyright',
            'id'            => 'copyright',
            'description'   => __( 'Copyright', 'thim' ),
            'before_widget' => '<aside id="%1$s" class="widget %2$s">',
            'after_widget'  => '</aside>',
            'before_title'  => '<h4 class="widget-title">',
            'after_title'   => '</h4>',
        ) );
        register_sidebar( array(
            'name'          => __( 'Sidebar Shop', 'thim' ),
            'id'            => 'shop',
            'description'   => 'Shop Sidebar',
            'before_widget' => '<aside id="%1$s" class="widget %2$s">',
            'after_widget'  => '</aside>',
            'before_title'  => '<h4 class="widget-title">',
            'after_title'   => '</h4>',
        ) );
        if ( class_exists( 'LearnPress' ) ) {
            register_sidebar( array(
                'name'          => 'Top Sidebar Courses',
                'id'            => 'top_sidebar_courses',
                'description'   => __( 'Top Sidebar Courses', 'thim' ),
                'before_widget' => '',
                'after_widget'  => '',
                'before_title'  => '<h3>',
                'after_title'   => '</h3>',
            ) );
    
            register_sidebar( array(
                'name'          => 'Sidebar Courses',
                'id'            => 'sidebar_courses',
                'description'   => __( 'Sidebar Courses', 'thim' ),
                'before_widget' => '<aside id="%1$s" class="widget %2$s">',
                'after_widget'  => '</aside>',
                'before_title'  => '<h4 class="widget-title">',
                'after_title'   => '</h4>',
            ) );
        }
    }
    

    之后使用动作

    add_action('init','thim_widgets_inits_child');
    

    【讨论】:

    • 谢谢!!我应该删除这个已经存在的 add_action 并用你的替换它吗? add_action('widgets_init', 'thim_widgets_inits');
    • 是的,您可以将其替换为 add_action( 'widgets_init', 'thim_widgets_inits_child' );
    • 嗯。现在我试了一下,还是不行。会不会是别的?
    • 当我尝试访问 URL 时,似乎在 URL 的初始部分添加了一个额外的 W。所以它说 wwww.tolkeuddannelsen.dk
    • 网址在这里运行良好,你能检查一下缓存问题吗?
    猜你喜欢
    • 1970-01-01
    • 2010-10-17
    • 2014-11-07
    • 1970-01-01
    • 2017-05-22
    • 2013-07-01
    • 1970-01-01
    • 2013-03-10
    相关资源
    最近更新 更多