2016-01-15 1 views
0

Bonjour les amis, J'ai besoin de peu d'aide dans Wordpress. J'essaye de cacher la boîte d'auteur qui apparaît sous la poste pour l'utilisateur spécifique seulement. Par exemple, si le message que je consulte est publié par l'administrateur, je souhaite masquer la zone d'auteur sous le contenu d'un message publié par l'administrateur, mais devrait s'afficher pour tous les autres utilisateurs? J'ai essayé différentes fonctions, mais pas réussi à ce sujet.Wordpress Auteur boîte Contrôle Fonction

Je veux cacher complètement le authorbox, je sais que cela peut être fait avec le code CSS qui est

.author-box { display:none;} 

mais cela cache le authorbox global de les compléter, je veux juste cacher la authorbox sur les poteaux qui sont faites par admin? J'utilise le framework genesis, alors s'il vous plaît suggérer si vous pouvez faire quelque chose ici.

Merci

+0

Quelle solution voulez-vous? PHP ou CSS? (Vous avez utilisé les deux balises). Et, si vous ** voulez vraiment que la boîte disparaisse, alors vous devriez l'enlever avec PHP. –

+0

oui solution php je veux, comme avec css je pense que l'auteur-boîte sera désactivé sur tous les messages non? comme dit je veux cacher auteur-boîte sous les messages qui sont créés par admin, de sorte que toute solution qui fonctionne avec wordpress sera bon –

+0

S'il vous plaît noter: ** css va cacher la boîte **, mais les utilisateurs intelligents (c'est super facile!) sera capable de * éditer l'auteur * même si la boîte est cachée par css. Vous voulez une vraie solution qui supprime ** la boîte. –

Répondre

0

Dans votre thème de fichier functions.php, ajouter quelque chose comme ceci:

function remove_my_post_metabox() { 
    global $post; 
    // If the post author ID is 1, then remove the meta box 
    // You would need to find the ID of the author, then put it in place of the 1 
    if ($post->post_author == 1) { 
     remove_meta_box('authordiv','post','normal'); // Author Metabox 
    } 
} 

add_action('add_meta_boxes', 'remove_my_post_metabox'); 

Si vous avez besoin de connaître le rôle de l'auteur, et vraiment le faire en fonction du rôle (admin, par exemple), alors ce serait plus comme ceci:

function remove_my_post_metabox() { 
    global $post; 

    // If there's no author for the post, get out! 
    if (! $post->post_author) { 
     return; 
    } 

    // Load the user 
    $user = new WP_User($post->post_author); 
    // Set "admin" flag 
    $is_admin = FALSE; 

    // Check the user roles 
    if (!empty($user->roles) && is_array($user->roles)) { 
     foreach ($user->roles as $role) { 
      if ($role == 'administrator') { 
       $is_admin = TRUE; 
      } 
     } 
    } 

    // Lastly, if they ARE an admin, remove the metabox 
    if ($is_admin) { 
     remove_meta_box('authordiv','post','normal'); // Author Metabox 
    } 
} 

add_action('add_meta_boxes', 'remove_my_post_metabox');