プラグインなしでログインユーザー以外をリダイレクトさせる方法

Cocoonカスタマイズ集
この記事は約2分で読めます。
記事内に広告が含まれています。

はじめに

Gutenbergエディター

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にリダイレクトすることができます。
特定のページへのアクセスを制限したい場合や、未ログインユーザーを特定のページに誘導したい場合に便利な方法です。

タイトルとURLをコピーしました