有没有简单的方法可以把wp_admin_bar移到我自己的位置?

时间:2011-04-23 作者:shawn

我想删除页面顶部的管理栏,并将其放置在我的主题中的自定义位置。

问题:

如何在自定义div中调用wp\\u admin\\u bar()。我还需要删除内置css,以便应用自己的css。

*我已经有了一个过滤器来完成这部分。

原因:

我的主题是为了ipad/iphone友好。我希望管理栏“固定”在屏幕顶部。

问题是mobile safari不接受position:fixed,这需要一个js解决方案,我已经解决了这个问题。

我的主题已经有了一个固定的标题,即ipad ready。如果我可以调用wp\\u admin\\u bar()并将其放在这个“特殊”div中,那么问题就解决了。

*感谢其他人在这个论坛上帮助我,我成功地将内置的wp\\u menu()放到了管理栏中,这真的很酷。将该功能添加到管理栏后,我现在有了一个非常棒的导航栏,它将内置功能与自定义菜单相结合。

2 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

您可以尝试在其他位置输出管理栏,但是the included Javascript always moves the bar to the body element - 可能是为了在一个主题没有关闭页面末尾的所有HTML元素时使其正常工作。

因此,如果要将其移动到其他地方,必须在标准脚本将其移动到正文后执行此操作。我通过在管理栏后面的页脚中加载脚本来实现这一点:

function wpse15444_wp_print_scripts()
{
    if ( ! is_admin() ) {
        wp_enqueue_script( \'wpse-15444\', plugins_url( \'wpse-15444.js\', __FILE__ ), array( \'jquery\' ), false, true );
    }
}

// wpse-15444.js
jQuery( window ).load( function() {
    jQuery( \'#wpadminbar\' ).appendTo( jQuery( \'#wpse15444-admin-bar-container\' ) );
} );
因为酒吧通常有position: fixed 你看不到它在动,那就让它动吧position: absolute 在您自己的样式表中。

通过添加wpse1544-admin-bar-container#header 在210个主题中,我得到了以下结果:

Admin bar in header instead of top of page

SO网友:Wyck

当前管理栏使用position:fixed 并可在管理栏中找到。css。我删除了这种样式,因为调试时我更喜欢底部的管理栏,因为它通常会掩盖输出。

在大多数情况下#wpadminbar 可以使用!important.

另一种更好的选择是取消注册\\u样式并注册自己的样式。

您需要在代码中找到管理栏。css被排队,然后添加一个钩住它的自定义函数并将其关闭,例如,如果排队样式函数被称为wp pagenavi。

add_action( \'wp_print_styles\', \'my_deregister_styles\', 100 );

function my_deregister_styles() {
    wp_deregister_style( \'wp-pagenavi\' );
}
然后,您可以使用以下命令将自己的样式排队:

wp_enqueue_style( \'myStyleSheets\');
快速查看后,我不确定是否可以注销管理栏。css

结束

相关推荐