如何使 wordpress 管理菜单默认折叠?
How to make wordpress admin menu collapsed by default?
希望大家都看过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-fold
和 folded
类 的位置,并确保在页面加载时默认为 folded
。在您找到完成的位置之前,我不能说更多。
终于找到答案了:
我们只需要在body 标签中添加class 'folded' 就可以让管理菜单折叠起来。我使用 JavaScript 在 body 标签中添加了 class : 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');
成功了:)
上面的解决办法是个不错的办法。但是在这个解决方案中,我们可以看到一些闪烁,直到页面被加载并且脚本执行(如果它被绘制),然后我们可能能够看到它打开。
我在深入研究了一些核心文件后通过后端提出了这个解决方案。
add_filter("admin_body_class", "my_folded_menu", 10, 1);
function my_folded_menu($classes){
return $classes." folded";
}
这是做同样的事情,它添加了class。只是它从后端而不是前端执行。
希望大家都看过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-fold
和 folded
类 的位置,并确保在页面加载时默认为 folded
。在您找到完成的位置之前,我不能说更多。
终于找到答案了:
我们只需要在body 标签中添加class 'folded' 就可以让管理菜单折叠起来。我使用 JavaScript 在 body 标签中添加了 class : 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');
成功了:)
上面的解决办法是个不错的办法。但是在这个解决方案中,我们可以看到一些闪烁,直到页面被加载并且脚本执行(如果它被绘制),然后我们可能能够看到它打开。
我在深入研究了一些核心文件后通过后端提出了这个解决方案。
add_filter("admin_body_class", "my_folded_menu", 10, 1);
function my_folded_menu($classes){
return $classes." folded";
}
这是做同样的事情,它添加了class。只是它从后端而不是前端执行。