WordPressでは、ログインユーザーにのみ特定のコンテンツを表示したいというケースがあります。例えば、会員限定の情報や限定資料のリンクなどです。この記事では、ショートコードを使ってログインユーザーにだけ特定の内容を表示する方法を紹介します。
ショートコードの基本的な仕組み
ショートコードは、WordPress記事や固定ページ内で簡単に再利用可能な機能を挿入できる構文です。今回は、ログイン状態を判定し、ログインしている場合のみコンテンツを表示するショートコードを作成します。
functions.phpにショートコードを追加
まずは、以下のコードをテーマのfunctions.php
に追加します。
function shortcode_logged_in_only($atts, $content = null) {
if (is_user_logged_in()) {
return do_shortcode($content);
} else {
return '<p>このコンテンツはログインユーザー限定です。</p>';
}
}
add_shortcode('member_only', 'shortcode_logged_in_only');
このショートコードは、ログインしていれば中のコンテンツを表示し、未ログインの場合はメッセージを表示します。
使い方の例
記事や固定ページ内で以下のようにショートコードを記述します。
[member_only]
このコンテンツはログインユーザーだけに表示されます。
[/member_only]
ログインしているユーザーには「このコンテンツはログインユーザーだけに表示されます。」というメッセージが表示され、未ログインのユーザーには「このコンテンツはログインユーザー限定です。」と表示されます。
応用:未ログインユーザー向けのカスタムメッセージ
ログインしていないユーザーにカスタムリンクやログインページへの誘導を表示したい場合は、次のように変更できます。
function shortcode_logged_in_only_custom($atts, $content = null) {
if (is_user_logged_in()) {
return do_shortcode($content);
} else {
return '<p>このコンテンツは会員限定です。<a href="' . wp_login_url() . '">ログインはこちら</a></p>';
}
}
add_shortcode('member_only_custom', 'shortcode_logged_in_only_custom');
このようにすれば、未ログインユーザーをログインページにスムーズに誘導できます。
まとめ
ログインユーザー専用コンテンツの実装は、WordPress標準の関数is_user_logged_in()
とショートコードを組み合わせることで簡単に実現可能です。シンプルながらも強力な方法で、会員制サイトや企業内ポータルなど幅広い用途に応用できます。
コンテンツ保護や限定公開機能をスマートに実装したい場合は、ぜひ活用してみてください。