隐藏某些帖子类型的管理栏

时间:2015-10-01 作者:CalvT

我有一个自定义的帖子类型IDproductpopup- 我想为包括admin在内的所有用户隐藏管理栏。我的功能背后的理论如下:

使用以下选项选择职位类型

get_post_type( $post ) == \'productpopup\'
然后使用隐藏管理栏

add_filter( \'show_admin_bar\', \'__return_false\' );
所以在我的主题中加入以下内容functions.php 在我看来应该行得通,但行不通

if ( get_post_type( $post ) == \'productpopup\' )
add_filter( \'show_admin_bar\', \'__return_false\' );
Wordpress 4.3.1

1 个回复
最合适的回答,由SO网友:Daniel Muñoz Parsapoormoghadam 整理而成

不要攻击你的Wordpress核心。它在每次升级后都会被覆盖(插件确实因为某些原因而存在)。

您可以通过以下方式解决问题:

1) 打开您的single.php.
2)定义

<?php 
function hideAdminBar ($post_id)
{
    if (get_post_type ($post_id) == \'post\')
    {
        add_filter (\'show_admin_bar\', \'__return_false\');

        /* For removing the top blank space. */
        echo \'<style type="text/css" media="screen">
            html { margin-top: 0px !important; }
            * html body { margin-top: 0px !important; }
            </style>\';
    }
} 
?> 
3)在循环中,在while 条件像这样:

<?php while ( have_posts() ) : the_post();?>

    <?php hideAdminBar (get_the_ID ()); ?>
    /* etc. */

<?php endwhile; ?>
希望这能解决你的问题。

相关推荐

ADD_TIME_SUPPORT(‘admin-bar’)导致致命错误

我正在努力学习更多关于主题开发的知识,所以我创建了自己的主题,除了添加functions.php 并尝试用一些简单的方法进行更新,如:<?php add_theme_support(\'admin-bar\', array(\'menus\')); ?> 我明白了Server 500 ERROR 我无法访问Wordpress的任何部分,甚至连仪表板都无法访问。但一旦我删除functions.php 和刷新页面我的Wordpress又回来了,工作顺利。有什么神秘的fu