[サイト作り] ワードプレスで会員専用のページを

ワードプレスで会員用ページを作る

「WP自体を会員用として使う」
「シングル記事だけ会員用にする」
「特定カテゴリーの記事のみ会員用にする」

この3つ

まずはじめに、管理人はPHPが読めないので質問は受け付けておりません。

記載されてるコードは、全角文字が含まれてるかもしれないのでコピペの際は要確認

「WP自体を会員専用で使う」

静的サイトに会員専用ページとしてワードプレスを設置した時にログインしないとアクセスできないようにしたりとか

URL/index.html
ホームページはアクセスできるが

URL/member/index.php
ワードプレスのディレクトリからはログインしないとアクセスできない

方法は、wordpress本体の中の「wp-blog-header.php」をエディタで開き、

if (is_user_logged_in()){}else {auth_redirect();}; wp();

を挿入する

Google調べではwp();

の前に挿入するといいとの事

「記事だけ会員専用」

使用コード
<?php if (is_user_logged_in()) { ?>
会員に見せる部分
<? } else { ?>
非会員に見せる部分
<? } ?>

single.phpの中身(テンプレタグは抜粋してます)

<?php get_header(); ?>

<div id="content">
 <?php if (is_user_logged_in()) { ?>
  <?php if(have_posts()): ?>
   <?php while(have_posts()):the_post(); ?>

  <div class="post">
  <h2><?php the_title(); ?></h2>
   <div class="entry">
    <?php the_content(); ?>
   </div>
  </div>

  <?php endwhile; ?>
 <?php endif; ?>

<? } else { ?>

 <div class="post">
  <h2>会員専用です</h2>
   <div class="entry">
   このページは会員専用となっております。閲覧するには会員登録が必要です。
   </div>
 </div>

<? } ?>

</div>

<?php include (TEMPLATEPATH . '/left.php'); ?>

<?php include (TEMPLATEPATH . '/right.php'); ?>

<?php get_footer() ?>

※テーマスタイルはご自信のに直して下さい

div contentの中に会員用と非会員用の両方を用意する事で、ログインしてない人には「会員専用です」と表示され、ログインすると記事が閲覧できる。

「特定カテゴリーの記事だけ会員専用」

この方法は、管理人がPHPが読めないので、上記の方法とin categoryを組み合わせた結果です。

右脳で組み合わせたので合ってるかどうかは分かりませんが、テストではうまく動作してます。

が、自信は無いのでテーマのバックアップ等は忘れずに

内容としては

「会員にはsingle.phpを表示させるが、非会員にはsingle.phpと同様内容のsingle1.phpを表示し、更に特定カテゴリーに属する記事にアクセスした場合はsingle2.phpを表示させる」といったもの

使用コード
 <?php if (is_user_logged_in()) { ?>
  会員に見せる部分
 <? } else { ?>
  非会員に見せる部分
 <?php
$post = $wp_query->post;
if ( in_category('カテゴリID') ) {
include(TEMPLATEPATH . '/single2.php');
} else {
include(TEMPLATEPATH . '/single1.php');
} ?>
<? } ?>

single.phpの中身

<?php get_header(); ?>

<div id="content">
 <?php if (is_user_logged_in()) { ?>
  <?php if(have_posts()): ?>
   <?php while(have_posts()):the_post(); ?>

<div class="post">
 <h2><?php the_title(); ?></h2>
  <div class="entry">
   <?php the_content(); ?>
  </div>
</div>

 <?php endwhile; ?>
<?php endif; ?>

<? } else { ?>

<?php
$post = $wp_query->post;
if ( in_category('5') ) {
include(TEMPLATEPATH . '/single2.php');
} else {
include(TEMPLATEPATH . '/single1.php');
} ?>

<? } ?>

</div>

<?php include (TEMPLATEPATH . '/left.php'); ?>

<?php include (TEMPLATEPATH . '/right.php'); ?>

<?php get_footer() ?>

非会員がカテゴリーID5に属する記事にアクセスしたらsingle2.phpを表示し
非会員がカテゴリーID5以外の記事にアクセスしたらsingle1.phpを表示する
single1.phpとsingle2.phpの中は

single.phpのdiv id=”content”の中に呼び出すので、div id contentや、ヘッダー、フッターなどは外しておく
非会員でも閲覧できる記事を表示させる

single1.phpの中身

<?php if(have_posts()): ?>
 <?php while(have_posts()):the_post(); ?>

<div class="post">
 <h2><?php the_title(); ?></h2>

 <div class="entry">
  <?php the_content(); ?>
 </div>
</div>

<?php endwhile; ?>
<?php endif; ?>

single2.phpの中身

<div class="post">
 <h2>会員専用ページです</h2>

 <div class="entry">
  このページは会員専用です。
  閲覧するには登録が必要です。
 </div>
</div>

これで、特定カテゴリーの記事は閲覧できないが、それ以外の記事は閲覧できるようになる。

あとは、用途に応じ
トップページに会員用記事の表示をさせない
カテゴリーリストから会員カテゴリーの除外

検索結果やアーカイブからも除外させた方がいいが、やり方を勉強中なので今回は

例として、ログインした時にだけサーチボックスや月間アーカイブを表示させるのもありかと

検索エンジンにキャッシュさせないや、フィードからも除外とか色々ありそうです

ついでに、ログインフォーム

スタイルシートははお好みで

<div id="userlogin">

<?php
global $user_ID, $user_identity;
get_currentuserinfo();
if (!$user_ID):
?>

<form name="loginform" id="loginform" action="<?php echo get_settings('siteurl'); ?>/wp-login.php" method="post">

<h2>ようこそゲスト</h2>
<p>
投稿するには登録が必要です。

&gt;&gt;<?php wp_register('', ''); ?><input type="hidden" name="redirect_to" value="<?php echo $_SERVER['REQUEST_URI']; ?>"/>
</p>

<h2>メンバーログイン</h2>

<label><?php _e('Login') ?>:
<br />
<input type="text" name="log" class="log" value="" size="20" tabindex="7" /></label>

<br />

<label><?php _e('Password') ?>:
<br />
<input type="password" name="pwd" class="pwd" value="" size="20" tabindex="8" /></label>

<div id="remenb">
<input class="checkbox" name="rememberme" type="checkbox" value="forever" tabindex="9" checked="checked" />
記憶する</div>

<input class="submit" type="submit" name="submit" value="<?php _e('Login'); ?> &raquo;" tabindex="10" />
<br />

>>パスワードを忘れた
</form>

<?php else:?>

ログイン時表示ここから

<div id="conpane">
<h2>コントロールパネル</h2>

<ul>

<li>Hello! <あ href=”/wp-admin/profile.php”><?php echo $user_identity; ?>
[<あ href="<?php echo get_settings('siteurl') . '/wp-login.php?action=logout&redirect_to=' . $_SERVER['REQUEST_URI']; ?>”><?php _e(’Logout’); ?>]</li>

<li><?php wp_register(); ?>
</li>

<li><あ href=”ドメイン/wp-admin/post-new.php“>新規投稿</li>
</ul>
</div>

<?php endif;?>

</div>

ログインフォームログイン前

ログインフォームログイン後

ログインと非ログインでの表示非表示のメモ

その1

<?php if (is_user_logged_in()){ ?>
ログイン時に表示
<?php } else { ?>
非ログイン時に表示
<?php } ?>

その2

<?php
global $user_ID, $user_identity;
get_currentuserinfo();
if (!$user_ID):
?>
非ログイン時に表示
<?php else:?>
ログイン時に表示
<?php endif;?>

参考
Members only sections
テンプレートタグ in category

Did you like this? Share it:

PR

<

Random Posts

  • 2009年3月27日 -- チーズときのこのリゾット
    昨日買った「キューピーベビーフード チーズときのこのリゾット」を食べてみた 塩っけが足りないだけで全然美味しいじゃないか! レトルトの封を切ったらほのかにチーズの香りしてさ ジャンクフードみたくがっつりチーズ味してないし 塩を入れてみたら大人な味になるし 量もほんと小原に入れる程度だし 離乳食っていいなw 今度は親子うどんを買ってみよ しかしなんだ 離乳食高けぇよ・・・ 春雨ス...
  • 2011年9月9日 -- [WP プラグイン] Recent Custom Posts – 新着記事リスト表示のプラグイン
    新着記事リストをウィジェットに表示するプラグイン 「Recent Custom Posts」 1、プラグインのアップロード and 有効化 2、管理メニュー≫外観≫ウィジェット≫Recent Custom Posts: をウィジェットに追加 ウイlジェットオプション タイトル: 例_新着記事 Select post type ポストやページから、どの新着リストを...
  • 2011年8月16日 -- 8月16日のツイート
    大橋賢治さんの回答:グーグルがモトローラ・モビリティを買収 その影響は http://t.co/YZ91q7Y posted at 23:24:05 松永 エリック・匡史さんの回答:グーグルがモトローラ・モビリティを買収...
  • 2010年11月15日 -- フォームの入力欄にテキストを入れておく備忘録
    コメントフォームなどの入力欄にテキストを表示させておくやつの備忘録。 デフォルトでテキストが表示されてて、クリックするとテキストが消えるあれです。 参考サイトにサンプルあるので確認してください。 参考サイト 入力欄にウォーターマークを表示する/ユーザー補助/SolidStateEveryday - Ajax,javascript,UIサンプルとチュートリアル - 通常のウ...
  • 2007年11月1日 -- [WEB] みんなでBIGLOBEストリーム
    視聴者参加型の動画ポータルサイト「みんなでBIGLOBEストリーム」 みんなでBIGLOBEストリームは、インターネット上のバーチャルルームで複数の視聴者が同時に動画を視聴し、アバターを操作することで、他の視聴者と視聴体験を共有することができるサービス。 ほかにブログパーツが配布されており、自分のホームページやブログに貼る事がでける ブログパーツはこんな感じ ブログパーツの中に表示されてい...
  • 2008年5月8日 -- [Mobile] お気に入りのヘアスタイルと顔写真を合成できるサービス – 「ヘアスタ」
    ヘアスタは、流行のヘアスタイルと顔写真を合成する事が出来る携帯向けサービス 女性向けっぽい 「ヘアスタ」 会員登録することで無料で利用できる 12日よりサービス開始 まず、ヘアカタログからお気に入りのヘアスタイウを選び、携帯電話で撮影した顔写真をメールに添付し送ると、そのヘアスタイルに変身した画像を受け取る事が出来る。 ヘアスタイルは、新着・ヘアサロン別、ロング、ミディアム、ショートのレ...
  • 2009年9月17日 -- 飲む杏仁豆腐がうまくてうまくて
    守山乳業の飲むデザートをコンセプトに作られた「飲む杏仁豆腐」 とろとろとした口ざわりで甘さ控えめ 量が少なめなのでちょっと一息つく時にいい感じ 癒される味でハマってますが 最寄の店のひとつにしか売ってないからもうちょっと色んなとこで売ってくれるといいんだけどなー (モデル:可愛い従姉妹ちゃん) 守山乳業株式会社...
  • 2011年6月10日 -- [WP プラグイン SEO] BAW Google Author – author meta tag を追加する
    head内に"meta rel="author" value="投稿者名" /"を、追加するプラグイン。 「BAW Google Author」 1、プラグインのアップロード and 有効化 2、プラグイン一覧≫BAW Google Author≫settingsを開く 全てのページに同じ author を表示させるな、" Always use this name.~"に...
  • 2010年1月21日 -- はじめてのコンビニ決済
    ムームードメインが6周年記念キャンペーンらしく『.com』 『.net』 『.jp』 が、安いとの事なので取得するかどうかは別としておさいぼポイントをチャージする事に いつもは銀行振込をしてるのですが、ビスコを買いにセブンイレブンに行くついでに振り込めたら便利だし 振込票番号をメモしてお気に入りの店員ちゃんに渡すと、見惚れる暇もなく振込み終了 銀行だと振込み情報の入力とかめんどくさいのに! ...
  • 2008年9月23日 -- [動画変換] Mobile Media Converter- シンプルな相互変換ソフト
    Mobile Media Converterは、フリーのビデオ/オーディオ変換ソフトです。 パソコン向けの avi, wmv, avi ビデオや mp3, wma オーディオ、携帯向けの 3gp ビデオや amr オーディオ などのメディアファイル形式に変換することができます。 このプログラムは「FFMPEG」を使用したシンプルで使いやすいグラフィカルユーザーインターフェイス(GUI)です。 ...