ユーザーを追加すると同時に、自動的に新規投稿をする方法
WordPressの管理画面でユーザーを追加した時に、「ユーザーが追加されました!」などという投稿をしたい場合がたまにある。それを自動的に行う方法。
以下のように、アクションフック『user_register』にコードを追加する。
function auto_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', 'auto_post' );
『wp_insert_post』という関数を使う。返り値は追加したユーザーID。『post_status』は、デフォルトでは『draft』(下書き)になるので、すぐに投稿したい場合には、『publish』にしておく必要がある。『pending』(レビュー待ち)、『private』(非公開)なども可能。
また、カスタムフィールドを使いたい場合には以下のようにコードを追加する。
function auto_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, 'user_login_name', $user_info->user_login); } } add_action('user_register', 'auto_post' );
上記コード内の$my_post配列に追加してもカスタムフィールドには値が入らない。『update_post_meta』という関数を使う。