メンバーを追加したら自動でそのメンバー専用ページ(カスタム投稿)が作られるようにした時のメモ。
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>