插件钩子打破了新的WP 4.0媒体库网格视图?

时间:2014-09-08 作者:Stephen

我有一个插件,其中包含的代码打破了新的WP 4.0媒体库网格视图。如果我的插件处于活动状态并且选中了此选项,则网格视图本身(页面的其余部分很好)将不会显示。如果用户选中此选项,“我的代码”将获取当前屏幕并显示一个包含相关信息的栏(就在管理栏下方)。以下是WP 4.0发布之前正常工作的代码:

function sbah_show_current_screen() {
    $screenoptions = get_option(\'sbah_options\');
    if(isset($screenoptions[\'sbah_view_screen\'][0])) {
        $takenscreen = $screenoptions[\'sbah_view_screen\'][0];
    }
    if(isset($takenscreen)) { 
        function my_current_screen($screen) {
            if ( defined( \'DOING_AJAX\' ) && DOING_AJAX ) return $screen;
            $idofscreen = $screen->id;
            echo "<div id=\'screennotice\' style=\'border:1px solid black;background:white;padding:5px;\'><strong>This is your current screen ID ( You can turn this off <a href=\'/wp-admin/edit.php?post_type=sbah_helptab&page=sbah_options\'>here</a> ):</strong>  <span style=\'color:red;\'>".$idofscreen. "</span></div>";
            return $screen;
        }
        add_action(\'current_screen\', \'my_current_screen\' );
    }
}
add_action( \'admin_menu\', \'sbah_show_current_screen\' );
我的条形图仍然显示得很好,唯一似乎被破坏的是媒体库的网格视图。甚至媒体库的列表视图也可以正常工作。

1 个回复
最合适的回答,由SO网友:Stephen 整理而成

好吧,我重新做了整件事,因为我显然是在我应该打印的地方之前打印出了我的信息。现在看起来是这样的:

//SHOW SCREEN IF OPTION CHECKED

add_action( \'admin_notices\', \'sbah_show_current_screen\' );
function sbah_show_current_screen() {
    $screenoptions = get_option(\'sbah_options\');
    if(isset($screenoptions[\'sbah_view_screen\'][0])) {
        $takenscreen = $screenoptions[\'sbah_view_screen\'][0];
    }
    if(isset($takenscreen)) { 
        if( defined( \'DOING_AJAX\' ) && DOING_AJAX ) return;
        global $current_screen;
        echo "<div id=\'screennotice\' style=\'border:1px solid black;background:white;padding:5px;margin-top:15px;float:left;\'><strong>This is your current screen ID ( You can turn this off <a href=\'/wp-admin/edit.php?post_type=sbah_helptab&page=sbah_options\'>here</a> ) :</strong>  <span style=\'color:red;\'>".$current_screen->id. "</span></div><div style=\'clear:both;\'></div>";
    }
}
我还借此机会将这一点结合到一个行动中,效果更好。生活和学习。

结束