【问题标题】:How to make wordpress admin menu collapsed by default?如何使 wordpress 管理菜单默认折叠?
【发布时间】:2015-04-18 12:43:49
【问题描述】:

我希望你们都看过 wordpress 管理面板。我们可以在菜单末尾选择折叠或展开菜单。

如果您单击折叠菜单会折叠并保存设置(我不知道在哪里)但是如果您再次登录,您将看到相同的折叠菜单..

他们将这些数据存储在哪里??? 我想让管理菜单默认显示为折叠我该怎么做?

编辑:我认为文件 wp-admin/js/common.js 对此负责.. 你可以在这里查看文件http://phpcrossref.com/xref/wordpress/wp-admin/js/common.js.txt

我想我得到了负责的代码,但我是 js 新手。代码如下:

$('#collapse-menu').on('click.collapse-menu', function() {
    var body = $( document.body ), respWidth, state;

    // reset any compensation for submenus near the bottom of the screen
    $('#adminmenu div.wp-submenu').css('margin-top', '');

    if ( window.innerWidth ) {
        // window.innerWidth is affected by zooming on phones
        respWidth = Math.max( window.innerWidth, document.documentElement.clientWidth );
    } else {
        // IE < 9 doesn't support @media CSS rules
        respWidth = 961;
    }

    if ( respWidth && respWidth < 960 ) {
        if ( body.hasClass('auto-fold') ) {
            body.removeClass('auto-fold').removeClass('folded');
            setUserSetting('unfold', 1);
            setUserSetting('mfold', 'o');
            state = 'open';
        } else {
            body.addClass('auto-fold');
            setUserSetting('unfold', 0);
            state = 'folded';
        }
    } else {
        if ( body.hasClass('folded') ) {
            body.removeClass('folded');
            setUserSetting('mfold', 'o');
            state = 'open';
        } else {
            body.addClass('folded');
            setUserSetting('mfold', 'f');
            state = 'folded';
        }
    }

    $( document ).trigger( 'wp-collapse-menu', { state: state } );
});

【问题讨论】:

  • 只需为此下载一个插件。很简单。
  • 您在这里向我们展示的是点击功能——即点击链接时会发生什么。我们需要的是初始化函数或模板——菜单最初是如何设置的。
  • 您需要找到模板使用auto-foldfolded 类的位置,并确保在页面加载时默认为folded。在你知道这是在哪里完成之前,我不能说更多。
  • @ntgCleaner 哪个插件??你知道吗??
  • @isherwood 您可以在这里查看 wordpress 管理员演示 demos1.softaculous.com/WordPress/wp-login.php 用户名:管理员密码:通过

标签: javascript jquery css wordpress


【解决方案1】:

终于找到答案了:

我们只需要在 body 标签中添加类 'folded' 来折叠管理菜单。我使用 JavaScript 在 body 标记中添加了类:document.body.className+='folded';

这是我添加到functions.php的完整代码(您也可以将其添加到您的插件中)

代码:=

function custom_admin_js() {
    echo "<script type='text/javascript' > 
document.body.className+=' folded';                 
</script>";

}
add_action('admin_footer', 'custom_admin_js');

它成功了:)

【讨论】:

    【解决方案2】:

    上述解决方案是一个很好的方法。但是在这个解决方案中,我们可以看到一些闪烁,直到页面被加载并且脚本被执行(如果它被绘制),然后我们可能会看到它打开。

    在深入研究了一些核心文件后,我通过后端提出了这个解决方案。

    add_filter("admin_body_class", "my_folded_menu", 10, 1);
    
    function my_folded_menu($classes){
        return $classes." folded";
    }
    

    它的作用是相同的,它增加了类。只是它是从后端而不是前端执行的。

    【讨论】:

    • 太棒了!这应该是公认的答案。
    • 我尝试了一切以仅从特定页面中删除 WP NAV 菜单,因为我正在使用该页面来显示扫描结果。如果没有自动生成的 load-styles.php 脚本的简短闪现,就无法使用 CSS 隐藏 WP NAV 菜单。我使用了你的代码并给了它一个 preg_match 条件,它只在特定页面上折叠 WP Nav 菜单时效果很好: if ( is_admin() && preg_match( '/page=bulletproof-security.*mscan-scan-status.php /', esc_html($_SERVER['REQUEST_URI']) ) ) { return $classes." folded"; }
    【解决方案3】:

    您需要找到模板使用auto-foldfolded 类的位置,并确保在页面加载时默认为folded。在你弄清楚这是在哪里完成之前,我不能说更多。

    【讨论】:

      猜你喜欢
      • 2013-03-28
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      • 2021-06-08
      • 2017-05-29
      • 2022-01-03
      • 1970-01-01
      相关资源
      最近更新 更多