はじめに

Cocoonには投稿ページを任意のURLにリダイレクトする機能が実装されています(図1参照)。
また、プラグイン「Shortcode Redirect」などを使用してリダイレクトする方法もあります。
しかし、プラグインを使わずに、独自のショートコードを使用して、ログインユーザー以外を指定したURLにリダイレクトします。
この記事では、この方法について説明します。
使用方法
以下にショートコードを示します。
[my_redirect]
| オプション | 説明 | 値 | 初期値 |
|---|---|---|---|
| url | リダイレクト先のURL(必須) |
実装手順
以下のコードをfunctions.phpに追加します。
add_shortcode('my_redirect', function ($atts) {
$url = isset($atts['url']) ? $atts['url'] : '';
if (empty($url)) {
return '<p>URLが指定されていません。</p>';
}
$sanitized_url = esc_url_raw($url);
if (empty($sanitized_url) || !wp_http_validate_url($sanitized_url)) {
return '<p>無効なURLが指定されています。</p>';
}
if (!is_user_logged_in()) {
wp_redirect($url);
exit;
}
return '';
});
さいごに
今回紹介した方法を使えば、プラグインを使わずに、ログインしていないユーザーを指定したURLにリダイレクトすることができます。
特定のページへのアクセスを制限したい場合や、未ログインユーザーを特定のページに誘導したい場合に便利な方法です。

