ユーザーを追加すると同時に、自動的に新規投稿をする方法
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』という関数を使う。




