WordPress記事を部分的にログイン中ユーザーだけに表示する方法

WordPressで「準備中リンク」や「自分だけの確認用ブロック」を読者に見せずに表示・管理するための最も簡単な方法。functions.phpにショートコードを追加し、記事内で制御する。

この記事の目的

  • 準備中リンクや案内を読者には隠したまま、自分(ログイン中のユーザー)には表示したい
  • WordPressの標準機能だけで対応できる簡潔な方法を求めている
  • CSSやテーマ編集をせずに済む方法として「ショートコードによる制御」が有効

ショートコードの追加手順

functions.php に以下のコードを追加:

function shortcode_restricted($atts, $content = null) {
  if (is_user_logged_in()) {
    return do_shortcode($content);
  }
  return '';
}
add_shortcode('restricted', 'shortcode_restricted');

✔ 解説:

  • is_user_logged_in():現在のユーザーがログイン中かどうかを判定するWordPress関数(公式ドキュメント確認済み)
  • do_shortcode($content):中身に他のショートコードが含まれていても実行できるようにする安全な処理
  • 中身の content はログイン中のみ返される

記事内での使い方

実際の使い方:

[restricted]
🚧 このコンテンツはログイン中のユーザーにのみ表示されます。
[/restricted]
  • このブロックは投稿者・ログインユーザーだけに表示される
  • 読者や未ログインユーザーには完全に非表示
  • HTMLタグを含めてもOK:
[restricted]
<div class="notice">
  🚧 関連リンクは近日公開予定です。
</div>
[/restricted]

活用アイデアと注意点

利用シーン説明
準備中のセクションを管理したい公開リンクの代わりに、自分だけの表示で進捗確認
後でリンクを追加する予定の場所編集時にどこに何を置くかを明確に記録可能
記事ごとにパーツを仮置きしたい場合再利用ブロックにも活用でき、編集効率が上がる

⚠ functions.php に追加した後は、テーマアップデートで消えないように子テーマで管理するか、Code Snippets プラグインで追加するのが安全です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次