メンバーを追加したら自動でそのメンバー専用ページ(カスタム投稿)が作られるようにした時のメモ。
STEP1:まずはカスタム投稿タイプを設定する。(function.php)
add_action( 'init', 'create_post_type' ); function create_post_type() { register_post_type( 'member', // 投稿タイプ名の定義 array( 'labels' => array( 'name' => __( '会員' ), // 表示する投稿タイプ名 'singular_name' => __( '会員' ) ), 'public' => true, 'show_in_rest' => true, // Gutenbergを有効にする 'menu_position' =>5, 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields' ,'comments' ), ) );
STEP2:ユーザー登録すると自動的に非公開ページが作成される(function.php)
function create_user_page ( $user_id ) { $user_info = get_userdata($user_id); $user_name = $user_info->user_login; $new_page = array( 'post_type' => 'member', 'post_title' => $user_name, 'post_name' => $user_name, 'post_status' => 'private', // ページは非公開にする 'post_author' => $user_id, ); wp_insert_post($new_page); } add_action('user_register', 'create_user_page' );
STEP3:そのページに自動的にリンクが貼られる(任意のテンプレート)
<a href="/member/<?php $user = wp_get_current_user(); echo $user->get('user_login'); ?>/">リンクテキスト</a>