GBL_Extras类的对象无法转换为字符串

时间:2015-07-15 04:18:51

标签: php wordpress class

我试着让我的WordPress插件工作,但我站在墙前。·

我的问题是,如果我最终给我的班级GBL_Extras打电话,则会发生错误:
Catchable fatal error: Object of class GBL_Extras could not be converted to string in /wp-includes/functions.php on line 1592

我不明白为什么会这样。如果我删除add_submenu_page方法,该类正确呈现,但我没有在那里做错 如果阅读了许多关于同样问题的其他文章,但我无法将这个错误的问题适应我的项目。

有人能在黑暗中带点光吗?

我的代码:

<?php       
// don't load directly
if ( ! defined( 'ABSPATH' ) ) {
    die( '-1' );
}

if ( ! class_exists( 'GBL_Extras' ) ) {
    class GBL_Extras {  
        private static $_instance;

        private function __construct() {
            // Add hooks
            add_action( 'network_admin_menu', array( $this, 'init' ));
        }

        public static function getInstance() {
            if ( ! ( self::$_instance instanceof self ) ) {
                self::$_instance = new self();
            }

            return self::$_instance;
        }

        public function init() {            
            add_menu_page( 'Extrawünsche', 'Extrawünsche', 'manage_options', 'gbl_extras_settings');
            add_submenu_page( 'gbl_extras_settings', 'Alle Extrawünsche', 'Alle Extrawünsche', 'manage_options', array( $this, 'backendRenderExtras'));
            add_submenu_page( 'gbl_extras_settings', 'Kategorien', 'Kategorien', 'manage_options', 'gbl_extras_categories', array( $this, 'backendRenderCategories'));
        }

        public function backendRenderExtras() {
            ?>
            <div class="wrap">
                <div id="icon-users" class="icon32"><br/></div>
                <h2>Extrawünsche</h2>
            </div>
            <?php
        }

        public function backendRenderCategories() {
            ?>
            <div class="wrap">
                <h2>Kategorien</h2>
            </div>
            <?php
        }
    }
    $gbl_manager = GBL_Extras::getInstance();
}

?>

1 个答案:

答案 0 :(得分:1)

您的第一个add_submenu_page()调用看起来缺少$menu_slug参数。比较两个电话的结尾:

'manage_options', array( $this, 'backendRenderExtras'));

'manage_options', 'gbl_extras_categories', array( $this, 'backendRenderCategories'));

第二个看起来是正确的。