ログイン/ログアウト後のリダイレクト【WordPress】

// ログイン後元のページにリダイレクト functions.php
function my_login_redirect( $redirect_to, $request ) {
    if ( empty($request)) {
            $redirect_to =  home_url('');
    }
    return $redirect_to;
}

add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );
// ログイン後元のページにリダイレクト
<a href="<?php echo wp_login_url( $_SERVER['REQUEST_URI'] ); ?>">会員ログイン</a>
// ログアウト後元のページにリダイレクト
<a href="<?php echo wp_logout_url($_SERVER['REQUEST_URI'] ); ?>">ログアウト</a>

ユーザー一覧ページのカスタマイズ【WordPress】

WPダッシュボードのユーザー一覧ページを下記の通りカスタマイズした時のメモ。

  1. WP上で自動に付けられるユーザーIDを表示させたい
  2. ニックネームを表示させたい
  3. 氏名は不要
function add_users_columns( $columns ) {
    $columns['ID'] = 'ID';
    $columns['columns_nickname'] = 'ニックネーム';
    unset($columns['name']);
    $sort_number = array(
        'ID' => 0,
        'username' => 1, //ユーザー名
        'columns_nickname' => 2, //ニックネーム
        'email' => 3, //メールアドレス
        'role' => 4, //権限グループ
        'posts' => 5 //投稿
    );
    $sort = array();
    foreach($columns as $key => $value){
        $sort[] = $sort_number{$key};
    }
    array_multisort($sort,$columns);
    return $columns;
}
function add_users_custom_column( $dummy, $column, $user_id ) {
    if ( $column == 'ID' ) {
        $user_info = get_userdata($user_id);
        return $user_info->ID;
    }
    if ( $column == 'columns_nickname' ) {
        $user_info = get_userdata($user_id);
        return $user_info->nickname;
    }
}
add_filter( 'manage_users_columns', 'add_users_columns' );
add_filter( 'manage_users_custom_column', 'add_users_custom_column', 10, 3 );

カスタム投稿タイプの追加・ユーザー登録すると自動的にユーザー専用の非公開ページとリンクが作成される【WordPress】

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

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>