web-dev-qa-db-ja.com

新しい投稿でデフォルト投稿投稿者をなしに設定する

200人の著者を含む大規模なマルチサイトインストールでは、私は新しい投稿の著者をデフォルトでnoneにする必要があります。

私はpost_author divの設定を解除し、それを公開ボックス(とにかくあるべき場所)に移動し、wp_dropdown_users $ argsを変更する方法がないので 新しいpost_author_meta_box関数を書きました。 < - チケットを追跡します。

投稿者が編集されると、以前に保存された投稿者の代わりにnoneに戻ります。

//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

私はそれが他の誰かに役立つかもしれないので私は質問を残しているので私は解決策を考え出しました。

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