<?php if(!is_user_logged_in()) { ?> <a href="<?php bloginfo('url'); ?>/wp-login.php">ログイン</a> <?php } else { ?> <a href="<?php echo wp_logout_url(get_permalink()); ?>">ログアウト</a> <?php } ?>
月: 2021年6月
ユーザー一覧ページのカスタマイズ【WordPress】
WPダッシュボードのユーザー一覧ページを下記の通りカスタマイズした時のメモ。
- WP上で自動に付けられるユーザーIDを表示させたい
- ニックネームを表示させたい
- 氏名は不要
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】
add_action('wp_login', 'redirect_roll', 10, 2); function redirect_roll($user_login, $user){ if( $user->roles[0] == 'subscriber' ){ // 購読者 wp_redirect( 'リダイレクトさせたいURL' ); exit(); } }
カスタム投稿タイプの追加・ユーザー登録すると自動的にユーザー専用の非公開ページとリンクが作成される【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>