如何使 wordpress 管理菜单默认折叠?

Posted

技术标签:

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

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

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

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

编辑:我认为文件 wp-admin/js/common.js 对此负责.. 你可以在这里查看文件http://phpcros-s-ref.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 用户名:管理员密码:通过 【参考方案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。在你弄清楚这是在哪里完成之前,我不能说更多。

【讨论】:

以上是关于如何使 wordpress 管理菜单默认折叠?的主要内容,如果未能解决你的问题,请参考以下文章

默认根据id打开折叠菜单

设计一个网页折叠菜单,如何设置它默认为关闭状态?

如何在折叠的导航栏中默认打开 Bootstrap 3 下拉菜单

如何使用 Sidr 创建可折叠的子菜单项?

javascript折叠菜单问题 帮忙修改,浏览器加载时,默认状态时菜单收拢,单击时才展开

如何使 HTML 可折叠按钮默认为展开?