とあるサイトでwordpress関数(wp_insert_post)を使って投稿を追加しているサイトがありました。
wp_insert_postで投稿を追加する時に投稿者の指定をしていなかったので、追加した投稿は投稿者が設定されていませんでした。
投稿者の設定は無くても良さそうなサイトでしたが、気持ち悪いのでWP-CLIを使って投稿者を一括で指定した時のメモになります。
ユーザーIDを調べる
wp user list
で確認することができます。
投稿タイプに対してauthorを一括指定する
wp post listで投稿タイプの一覧をIDで取得して、wp post updateでauthorを指定します。
–skip-plugins –skip-themesの指定は無くてもいいですが、指定した方が動作が高速になります。
投稿:postの場合
–post_typeの指定は不要
wp post update --skip-plugins --skip-themes $(wp post list --format=ids --skip-plugins --skip-themes) --post_author=1
固定ページ:pageの場合
wp post update --skip-plugins --skip-themes $(wp post list --format=ids --post_type=page --skip-plugins --skip-themes) --post_author=1
カスタム投稿:xxxxの場合
wp post update --skip-plugins --skip-themes $(wp post list --format=ids --post_type=xxxx --skip-plugins --skip-themes) --post_author=1
wp_insert_postの使用箇所を修正する
wp_insert_postの引数の配列にpost_authorと投稿者IDの指定を追加する
// Gather post data.
$my_post = array(
'post_title' => 'My post',
'post_content' => 'This is my post.',
'post_status' => 'publish',
'post_author' => 1,
'post_category' => array( 8,39 )
);
// Insert the post into the database.
wp_insert_post( $my_post );
まとめ
wp_insert_postを使う時は忘れずにpost_authorを指定しましょう。
忘れてしまった場合は、WP-CLIを使って一括で設定しましょう。