【WordPress】特定の環境でのみ動作させたい記述がある場合はこう書く

こんにちは!たくお(@TB_IQ)です。

WordPressでサイト制作をしているとき、特定の環境でのみ動作させたいコードがあると思います。

スポンサーリンク

サンプルコード

wp-config.phpに環境変数を定義

define('WP_ENV', 'production');

動作させたい箇所で条件式を記述

  <?php if (defined('WP_ENV') && WP_ENV === 'production') : ?>
  <!-- 例:本番環境で動作させたい記述はここ -->
  <?php endif; ?>

もしくは

<?php
if (define('WP_ENV') && WP_ENV === 'production') {
// 例:本番環境で動作させたい記述はここ
}
?>

アクセスキーなどの機密情報も環境変数として定義しておくと良い

例えば、本番環境でのみGoogleアナリティクスのタグを設置したいという場合、ソースコードをそのまま上記のように書くとGitなど残ってしまうなど、セキュリティ的に安全とは言い難いです。

そこで、このようなアクセスキーなどの機密情報的なコードも環境変数として定義しておくと良いでしょう。

define('GA_TRACKING_ID', 'G-XXXXXXXXXX');

以下はGoogleアナリティクスのタグを本番環境でのみ読み込ませたい場合のサンプルコードです。

  <?php
    if (
      defined('WP_ENV') && WP_ENV === 'production' &&
      defined('GA_TRACKING_ID') && GA_TRACKING_ID !== ''
    ) : 
  ?>
    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="<https://www.googletagmanager.com/gtag/js?id=><?= esc_attr(GA_TRACKING_ID); ?>"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){ dataLayer.push(arguments); }
      gtag('js', new Date());
      gtag('config', '<?php echo esc_js(GA_TRACKING_ID); ?>');
    </script>
  <?php endif; ?>

スポンサーリンク

あとがき

今回はWordPressでサイト制作をする際に特定の環境でのみ動作させたいコードがある場合の方法について記載しました。

実際にはプラグインで対応したり、カスタマイザでトラッキングIDを入力させるようにしたりと他にも方法はあるのですが、受託開発の場合、様々な制約が発生することかと思います。

今回の方法はあくまで1つの方法として、皆様の参考になれば幸いです。

というわけで、次回もよしなに!