check for the current screen

时间:2018-04-09 作者:Simo Patrek

我正在开发我的核心主题插件,我在主题管理页面中创建了一个主题选项,通常为了避免nonces错误,我必须使用选项卡式导航分隔各个部分,因此我成功地做到了这一点,其想法是在用户进入主题选项页面时将一个部分设置为默认部分,当我尝试这样做时,唯一的方法是在当前屏幕上使用get_current_screen() 函数或全局变量$current_screen, 不幸的是,使用面向对象的类,我无法成功地实现它。这是我的密码。

class myClass {

    protected $curScreen;

    public function load_Hooks() {
        if ( is_admin() ) {
            add_action( \'admin_init\', array( $this, \'admin_Settins_Pages\' ) );
        }

        global $current_screen;
        $this->curScreen = $current_screen;
    }

    public function admin_Settins_Pages() {

        global $current_screen;

        if ( $this->curScreen->parent_base == \'parent-page-slug\' || isset( $_GET[\'tab\'] ) && $_GET[\'tab\'] == \'head_options\' ) {
            add_settings_section( \'handle-id\', \'Head Options\', array( $this, \'head_section_callback\' ), \'parent-page-slug\' );
        }
    }

    public function head_section_callback() {
        // Do Something ...
    }
}

if ( class_exists(\'myClass\') ) {
    $instClass = new myClass();
    $instClass->load_Hooks();
}
当我使用该功能时get_current_screen() 我遇到致命错误(调用未定义的函数)$current_screen 我注意到错误(试图调用非对象的属性)
1 个回复
SO网友:Tom J Nowell

这些变量和函数只存在于管理区域中,不供前端使用。您需要为前端使用不同的机制。

此外:

医生说你必须在admin_init 胡克,召唤那个胡克总会回来的nullcurrent_screen 当有疑问时,挂钩或更高版本,read the documentation

结束

相关推荐

500 Internal Errors

我正在将当前的Eduma主题更新为最新版本(3.0.9.1),目前的版本是3.0.7。我正在运行WordPress 4.7.5。但是,在运行更新时,我得到Update Failed: Internal Server Error 安装过程中的消息。所以我启动了这个过程,它运行了一分钟,然后它就停止了工作,我陷入了维护模式。所以我必须手动删除.maintenance 来自我的服务器的文件。我截图了我在错误中看到的内容。我在WordPress网站上运行了调试模式,这就是我所拥有的[31-May-2017 15: