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 プラグインで追加するのが安全です。