web-dev-qa-db-fra.com

Définir l'auteur du message par défaut sur aucun pour le nouveau message

Sur une installation multisite volumineuse avec 200 auteurs, il est nécessaire que l'auteur des nouvelles publications soit défini par défaut sur aucun.

Je désactive le div post_author et je le déplace dans la boîte de publication (où il devrait l'être de toute façon) et j'écris une nouvelle fonction post_author_meta_box car il n'y a aucun moyen de changer wp_dropdown_users $ args . <- billet de piste.

Cela fonctionne et définit l'auteur sur aucun, mais quand un article est édité, il revient à aucun au lieu de l'auteur précédemment enregistré.

//Replacement for post_author_meta_box 

function better_author_meta_box($post) { ?>  
   <label class="screen-reader-text" for="post_author_override"><?php _e('Author'); ?></label> <?php

    if ( empty($post->ID) ) : $selected = false; else : $selected = $post->post_author; endif;
    wp_dropdown_users( array(
            'who' => 'authors',
            'name' => 'post_author_override',
            'selected' => $selected,
//also tried: 'selected' => empty($post->ID) ? false : $post->post_author, 
            'include_selected' => true,
            'show_option_none' => 'NONE'
      ) );
  }

//Moves post_author_div to the publish box
add_action( 'post_submitbox_misc_actions', 'move_author_meta' );
function move_author_meta() {
global $post_ID;
$post = get_post( $post_ID );
echo '<div id="author" class="misc-pub-section" style="border-top-style:solid; border-top-width:1px; border-top-color:#EEEEEE; border-bottom-width:0px;">Author: ';
better_author_meta_box( $post );
echo '</div>';
}
1
Chris_O

J'ai trouvé une solution, alors je laisse la question posée car cela pourrait être utile à quelqu'un d'autre.

if ( 'auto-draft' == $post->post_status ) : 
   $selected = false; 
  else : 
   $selected = $post->post_author; 
endif;
1
Chris_O