ブログ

BLOGブログ

WordPress

WordPressでログインユーザにだけ固定ページを見せる

WordPressでユーザの名前やメールアドレスなどを画面表示などに使用したい場合、
そのページをログインユーザだけに見せる。
という方法をとりたくなりまよね。

以下は、固定ページでの実装方法になります。
最初に全てのコードを掲載します。

<?php
/**
  Template Name: page-work
**/
while ( have_posts() ) : the_post();
  $url_path = get_permalink();
  $args = array(
    'redirect' => $url_path,
    'label_username' => __( 'Username' ),
    'label_password' => __( 'Password' ),
    'remember' => false
  );
  if ( !is_user_logged_in() )
  {
    wp_login_form( $args );
  } else {
    /* ここにログインしているユーザ用の処理を記述 */
  }
endwhile; // End of the loop.

まずは、以下で、専用の固定ページ用のテンプレートとして宣言します。

/**
Template Name: page-work
**/

page-work 部分は、任意ですが、テンプレートのファイル名はpage-xxxx.phpとしましょう。

ログインしたら、今いるページに戻って来る為に、今いるページのパーマリンクを取得します。

$url_path = get_permalink();

ログインしていなかったら、ログインフォームを表示させる為のコード

$args = array(
  'redirect' => $url_path,
  'label_username' => __( 'Username' ),
  'label_password' => __( 'Password' ),
  'remember' => false
);
if ( !is_user_logged_in() )
{
  wp_in_form( $args );
}

ログインしていなかったら、ログインフォームではなく、トップページにリダイレクトなどしたい場合は、

wp-redirect()

を使用すると良いかと。

topTOP