web-dev-qa-db-fra.com

Comment afficher des extraits de messages dans Admin par défaut?

Par défaut, dans l'administrateur, l'extrait est masqué. Voir ci-dessous.

 By default in the admin the Excerpt is hidden 

Je voudrais le faire apparaître par défaut.

3
Stephen Sabatini

Les noms des cases non cochées dans l'écran Screen Options pour Edit Post sont stockés dans les méta de l'utilisateur, par utilisateur individuel, sous forme de tableau. Insérez le code suivant dans le functions.php de votre thème:

function wpse_edit_post_show_excerpt( $user_login, $user ) {
    $unchecked = get_user_meta( $user->ID, 'metaboxhidden_post', true );
    $key = array_search( 'postexcerpt', $unchecked );
    if ( FALSE !== $key ) {
        array_splice( $unchecked, $key, 1 );
        update_user_meta( $user->ID, 'metaboxhidden_post', $unchecked );
    }
}
add_action( 'wp_login', 'wpse_edit_post_show_excerpt', 10, 2 );

Cela mettra à jour la méta de l'utilisateur (après la connexion réussie) en supprimant le nom postexcerpt du tableau des noms de cases non cochées.

Remarque : pour ne pas perdre votre modification, créez un thème enfant et placez le code dans son functions.php.

4

ni la solution n'a fonctionné pour moi - mais ce correctif "ruban adhésif" a fonctionné pour moi:

/* always show excerpt .. hide display options */
add_action('admin_head', 'myplugin_modify_admin_header');
function myplugin_modify_admin_header() {
  ?>
  <style type='text/css'> 
    #postexcerpt { display: block !important; } 
    label[for=postexcerpt-hide] { display: none !important; }
  </style>
  <?php
}
2
David

Partageant une légère modification de la solution de Franks. Dans mon cas, je ne veux pas que les utilisateurs cachent jamais l'extrait. J'ai donc associé la fonction au admin_init au lieu de wp_login.

La fonction de Frank est exécutée lorsque l'utilisateur se connecte au site, ce qui signifie qu'une fois que l'utilisateur est connecté, il peut le cacher à nouveau. Cette solution se déclenchera à chaque chargement d’une page d’administrateur, ce qui empêchera l’utilisateur de masquer le champ.

function wpse_edit_post_show_excerpt() {
  $user = wp_get_current_user();
  $unchecked = get_user_meta( $user->ID, 'metaboxhidden_post', true );
  $key = array_search( 'postexcerpt', $unchecked );
  if ( FALSE !== $key ) {
    array_splice( $unchecked, $key, 1 );
    update_user_meta( $user->ID, 'metaboxhidden_post', $unchecked );
  }
}
add_action( 'admin_init', 'wpse_edit_post_show_excerpt', 10 );
2
Dedering

Les méta utilisateur stockent les boîtes méta non vérifiées sous forme de tableau, mais ne stockent rien si l'utilisateur n'a pas modifié les valeurs par défaut d'origine, renvoyant à la place une chaîne vide. Cela entraîne des erreurs lors de la connexion s’il n’est pas comptabilisé, j’ai donc ajouté une fonction supplémentaire et un crochet pour couvrir toutes les bases. J'ai également enveloppé la variable non contrôlée avec une condition afin de m'assurer qu'elle ne commettrait pas d'erreur si rien n'était renvoyé. Merci à Éditeur de rôle pour la fonction supplémentaire.

function wpse_edit_post_show_excerpt() {
    $user = wp_get_current_user();
    $unchecked = get_user_meta( $user->ID, 'metaboxhidden_post', true );
    if(!empty($unchecked)){
        $key = array_search( 'postexcerpt', $unchecked );
        if ( FALSE !== $key ) {
            array_splice( $unchecked, $key, 1 );
            update_user_meta( $user->ID, 'metaboxhidden_post', $unchecked );
        }
    }
}
add_action( 'admin_init', 'wpse_edit_post_show_excerpt', 10 );

function show_excerpt_meta_box($hidden, $screen) {
    if ( 'post' == $screen->base ) {
        foreach($hidden as $key=>$value) {
            if ('postexcerpt' == $value) {
                unset($hidden[$key]);
                break;
            }
        }
    }
    return $hidden;
}
add_filter( 'default_hidden_meta_boxes', 'show_excerpt_meta_box', 10, 2 );
0
Chris B