web-dev-qa-db-ja.com

投稿されたすべての「新規投稿」の作成者としてユーザーを設定

作者 'XYZ'をすべてのデフォルト作者として設定する必要があります新しい投稿。コンテンツを投稿している実際の作者に関係なく、投稿はこの作者 'XYZ'によって保存されるべきです。

この目的を果たすプラグインまたはカスタム関数はありますか?

Note : The existing posts should stay as it is, no 'change of author' for old posts, only new one should be effected.

2
uzair
function wp84782_replace_author( $post_ID )  
{
  $my_post = array();
  $my_post['ID'] = $post_ID;
  $my_post['post_author'] = 1 ; //This is the ID number of whatever author you want to assign

// Update the post into the database
  wp_update_post( $my_post );
}
add_action( 'publish_post', 'wp84782_replace_author' );

更新:このフックは投稿された後ではなく投稿が公開されるときに実行されるので、コマンドはシステムが同時に行っていることを上書きしようとしています。それで、これは投稿が以前に公開されたことであるこれらすべてをキャンセルする修正版です。ユーザーが作者を更新できないようにしたい場合は、おそらくそのメタフィールドを非表示にすることができます。投稿の公開直後に実行されるフックを私は知りませんが、もしあれば、フックすることでこの問題を解決することができます。

function wp84782_replace_author( $post_ID )  
{
    if(get_post_status( $post_ID ) == 'publish'){
        return;
    }
    else {
        $my_post = array();
        $my_post['ID'] = $post_ID;
        $my_post['post_author'] = 1 ; //This is the ID number of whatever author you want to assign

        // Update the post into the database
        wp_update_post( $my_post );
    }
}
add_action( 'publish_post', 'wp84782_replace_author' );

免責事項:このコードはすべてテストされていないため、多少の編集が必要になる場合があります。

2
Jake Lisby