WordPressで本番環境かつ未ログイン時に特定の処理を行う方法

WordPressで特定の処理を、本番環境かつユーザーがログインしていない状態のみに限定して実行したい場合、条件分岐を使用して簡単に制御できます。本記事では、そのための if 文を作成する方法を解説します。

1. wp_get_environment_type() で環境を判定

WordPressには、現在の環境(本番、ステージング、開発)を取得できる wp_get_environment_type() という関数があります。この関数を使うことで、本番環境でのみ特定の処理を行う条件を作成できます。

デフォルトでは、WordPressは production(本番環境)とみなしますが、必要に応じて wp-config.php に次の設定を追加して環境を指定することも可能です。

define( 'WP_ENVIRONMENT_TYPE', 'development' );

2. is_user_logged_in() でログイン状態を確認

次に、is_user_logged_in() 関数を使って、ユーザーがログインしているかどうかを確認できます。is_user_logged_in() はユーザーがログインしていると true を返し、ログインしていないときは false を返します。

この関数を活用すれば、ログインしていない場合の処理を簡単に作ることができます。

3. 条件を組み合わせて制御

これらの関数を組み合わせることで、「本番環境でかつ未ログイン時にのみ実行する処理」を以下のように記述できます。

<?php
if ( wp_get_environment_type() === 'production' && ! is_user_logged_in() ) {
    // 本番環境で、管理画面にログインしていない場合の処理
    ?>
    <p>このコンテンツは本番環境でログインしていない場合にのみ表示されます。</p>
    <?php
}
?>

4. 実装例の解説

上記のコードでは次の処理を行っています:

  • wp_get_environment_type() === 'production':現在の環境が本番環境であるかどうかを確認しています。
  • ! is_user_logged_in():ユーザーがログインしていない場合に true となるため、ログインしていないときに特定の処理を実行する条件が満たされます。

これにより、WordPressサイトの本番環境で、未ログインのユーザーに対してのみ特定のコンテンツや要素を表示したり、逆に非表示にしたりできます。例えば、ログインしていない一般ユーザーには広告を表示し、ログインしているユーザーには表示しないといったケースに活用できます。

この記事を書いた人

田島 佑清

2児の父 / ネクストメディア株式会社のエンジニア