ユーザーが新規登録をしたら、サンプル記事が自動生成されるようにするには?

on 2018年10月4日をアップデートしました。 カスタマイズ
2 on 2018年10月3日

管理者がログインをすると、投稿と固定ページ、コメントにそれぞれ1つずつサンプルが用意されていると思います。あれを他のユーザーが新規登録した際も自動生成されるようにすることは可能でしょうか?サンプル記事の内容はこちらで用意できるように(カスタマイズできるように)したいです。

 
  • Liked by
書き込み
0 on 2018年10月4日

wp_insert_postを使って、ユーザー登録された直後にそのIDでサンプル記事が挿入されるようにするようにすればできると思います。

  • Liked by
書き込み
キャンセル
0 on 2018年10月4日

上の方のおっしゃる通り、wp_insert_postを使って投稿されるようにできます。

 

function.phpに

function myregister_post($user_id) {
$user_info = get_userdata($user_id);
$my_post = array();
$my_post['post_title'] = '新規ユーザーが追加されました.。';
$my_post['post_content'] = $user_info->first_name.'さんが追加されました。';
$my_post['post_status'] = 'publish';
$post_id = wp_insert_post( $my_post );
}
add_action('user_register', 'myregister_post' );

 

単純に記事を追加するのであればこれでできるはずです。

wp_insert_postはカスタムフィールドの追加する項目はありませんので、ユーザーが新規登録した際に、カスタムフィールドも入力された状態で記事を生成したい場合は別のコードが必要になります。

 

function.php

function myregister_post($user_id) {
$user_info = get_userdata($user_id);
$my_post = array();
$my_post['post_title'] = '新規ユーザーが追加されました!';
$my_post['post_content'] = $user_info->first_name.'さんが追加されました。';
$my_post['post_status'] = 'publish';
$post_id = wp_insert_post( $my_post );
 
// カスタムフィールド用に次を追加
if($post_id){
update_post_meta($post_id, 'カスタムフィールドのキー', 'カスタムフィールドに入れる値');
}
}
add_action('user_register', 'myregister_post' );

 

 

流れとしては

wp_insert_postをuser_registerに追加して、その後、そのポストのpost_metaにカスタムフィールドを追加(アップデート)するという流れです。

 

  • Liked by
書き込み
キャンセル
書き込みを読み込む