web-dev-qa-db-fra.com

Masquer la barre d'administration sur certains types de message

J'ai un type d'article personnalisé - ID productpopup- que je veux masquer la barre d'administration pour tous les utilisateurs y compris admin . La théorie derrière ma fonction est la suivante:

Le type de message est sélectionné en utilisant

get_post_type( $post ) == 'productpopup'

Et puis la barre d’administration est cachée en utilisant

add_filter( 'show_admin_bar', '__return_false' );

Donc, mettre les éléments suivants dans mes thèmes functions.php dans mon esprit devrait fonctionner, mais cela ne fonctionne pas.

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

Wordpress 4.3.1

4
CalvT

Ne piratez pas votre noyau Wordpress. Il est annulé après chaque mise à niveau (des plugins existent pour une raison quelconque).

Vous pouvez résoudre votre problème de cette manière:

1) Ouvrez votre single.php.
2) Définir

<?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) Inside The Loop, appelez cette fonction juste après la condition while. Comme ça:

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

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

<?php endwhile; ?>

J'espère que cela résout votre problème.