如何使 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-fold
和folded
类的位置,并确保在页面加载时默认为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-fold
和folded
类的位置,并确保在页面加载时默认为folded
。在你弄清楚这是在哪里完成之前,我不能说更多。
【讨论】:
以上是关于如何使 wordpress 管理菜单默认折叠?的主要内容,如果未能解决你的问题,请参考以下文章
如何在折叠的导航栏中默认打开 Bootstrap 3 下拉菜单