お手軽WordPress Tips:ログインユーザーにだけ見せるコンテンツ用の簡単なコード

Ads

ちょっとご質問頂いたのでついでに記事
にします。WPで、ログインユーザーにだけ
見せたいコンテンツ、よく見るのはログイン
フォームとか管理画面へのリンクとかです
かね。そういったユーザーのみにしか見せ
たくないコンテンツを作りたい、という時に
使うコードです。

例えばマルチユーザーのサイトなんかにも良さそうですが、基本的に好きなコンテンツを入れる事が可能ですのでアイデア次第で利便性をあげられるかと思います。

コード

コードです。

<?php
if(current_user_can('read_private_pages')) :
?>
ログインしないと見れない場所

<?php endif; ?>

こんな感じで囲ってあげればOK。「ログインしないと見れない場所」の部分が隠したい場所になりますのでログインフォームなりチャットシステムなりお好きなコンテンツを入れてあげてください。納品物ならカレンダーなんかもいいかもしれないですね。
※ログアウトして実装出来ているか確認して下さいね。

おまけ:ログインフォーム

話に出たのでついでにログインフォームを作るコードも書いておきます。

<?php if (is_user_logged_in()) : ?>
	こんにちは! <?php global $current_user; echo $current_user->display_name ?>さん<br />
	 <a href="<?php echo wp_logout_url() ?>&amp;redirect_to=<?php echo esc_attr($_SERVER['REQUEST_URI']) ?>">ログアウトはこちら</a>
<?php else : ?>
	<form method="post" action="<?php echo wp_login_url() ?>?redirect_to=<?php echo esc_attr($_SERVER['REQUEST_URI']) ?>">
		<p><label for="login_username">ユーザー:</label><br />
		<input type="text" name="log" id="login_username" value="" /></p>
		<p><label for="login_password">PASS:</label><br />
		<input type="password" name="pwd" id="login_password" value="" /></p>
		<p><input type="submit" value="ログインする" /></p>
	</form>
<?php endif; ?>

こんな感じだとブログサービスっぽくなるのではないかなと思います。