嘿,
我仅将管理栏用于 Buddypress。 对于桌面版本,我将侧边栏中的所有菜单点都外包了。
不过,管理栏更适合移动版本。
我怎样才能最好地解决这个问题,管理栏仅在移动设备上显示。
感谢您的帮助。抱歉我的英语不好;)
一种选择是实现如下功能:
add_action('wp_footer', 'hide_admin_bar_prefs');
function hide_admin_bar_prefs() {
$op = '
<style type="text/css">
html {margin-top: 0px !important;}
#wpadminbar {display: none;}
@media (max-width: 400px) {
html {margin-top: 32px !important;}
#wpadminbar {display: block;}
}
</style> ';
echo $op;
}
我要补充的一件事 - 你可能想检查用户是否登录,否则对于未登录的用户,顶部可能会出现 32px 的空白。
我只是稍微扩展了它 - 检查用户是否登录:
add_action('wp_footer', 'hide_admin_bar_prefs');
function hide_admin_bar_prefs() {
if ( is_user_logged_in() ) {
$op = '
<style type="text/css">
html {margin-top: 0px !important;}
#wpadminbar {display: none;}
@media (min-width: 992px) {
html {margin-top: 32px !important;}
#wpadminbar {display: block;}
}
</style> ';
echo $op;
}
}
我有一个可能更优雅的解决方案,并且不需要接触 css。
Wordpress(自版本 3.4.0 起)提供了函数 wp_is_mobile()、wp_is_tablet()、wp_is_dektop() (Wordpress Docs),您可以使用它们查询当前可用的视图。 通过这些方法和 show_admin_bar(),您可以使用以下代码仅在移动视图中显示管理栏:
function remove_admin_bar() {
if (wp_is_tablet() || wp_is_desktop()) {
show_admin_bar(false);
}
}
add_action('after_setup_theme', 'remove_admin_bar');
将此代码添加到您的 WordPress 主题的functions.php 中,它应该可以工作。 还可以使用子模板,这样下次更新就不会删除您的自定义代码。