WordPress ユーザーがGoogle検索エンジンから遷移してきたアクセスを判定して表示内容を変更させるショートコード

概要説明

Google検索エンジンからユーザーがアクセスしてきたときだけという判定処理を追加するショートコード。使い方次第だとは思いますが特定の条件の場合にのみ表示のロジックはこちらをベースに拡張が行えます。

functions.php
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/*----------------------------------------------------
Google検索エンジンからサイトへ来たかを判定して表示を切り替える
----------------------------------------------------*/
if ( !function_exists( 'is_google_search' ) ){
function is_google_search() {
$check_url = 'https://www.google.com/';
if(isset($_SERVER["HTTP_REFERER"])){
if ( $check_url == $_SERVER['HTTP_REFERER'] ) {
if(!isset($_COOKIE['wp_google_search'])) {
setcookie('wp_google_search', 1, time()+3600); // 1時間有効
}
}
} else {
return FALSE;
}
}
// 表示分岐用のショートコード
function google_search_start() {
if(!isset($_COOKIE['wp_google_search'])) {
echo '<div style="display:none;">';
} else {
echo '<div>';
}
}
add_shortcode('google_start', 'google_search_start');
function google_search_else() {
if(!isset($_COOKIE['wp_google_search'])) {
echo '</div><div>';
} else {
echo '</div><div style="display:none;">';
}
}
add_shortcode('google_else', 'google_search_else');
function google_search_end() {
echo '</div>';
}
add_shortcode('google_end', 'google_search_end');
}
/*---------------------------------------------------- Google検索エンジンからサイトへ来たかを判定して表示を切り替える ----------------------------------------------------*/ if ( !function_exists( 'is_google_search' ) ){ function is_google_search() { $check_url = 'https://www.google.com/'; if(isset($_SERVER["HTTP_REFERER"])){ if ( $check_url == $_SERVER['HTTP_REFERER'] ) { if(!isset($_COOKIE['wp_google_search'])) { setcookie('wp_google_search', 1, time()+3600); // 1時間有効 } } } else { return FALSE; } } // 表示分岐用のショートコード function google_search_start() { if(!isset($_COOKIE['wp_google_search'])) { echo '<div style="display:none;">'; } else { echo '<div>'; } } add_shortcode('google_start', 'google_search_start'); function google_search_else() { if(!isset($_COOKIE['wp_google_search'])) { echo '</div><div>'; } else { echo '</div><div style="display:none;">'; } } add_shortcode('google_else', 'google_search_else'); function google_search_end() { echo '</div>'; } add_shortcode('google_end', 'google_search_end'); }
/*----------------------------------------------------
 Google検索エンジンからサイトへ来たかを判定して表示を切り替える
----------------------------------------------------*/
if ( !function_exists( 'is_google_search' ) ){
    function is_google_search() {
      $check_url = 'https://www.google.com/';
      if(isset($_SERVER["HTTP_REFERER"])){
          if ( $check_url == $_SERVER['HTTP_REFERER'] ) {
              if(!isset($_COOKIE['wp_google_search'])) {
                  setcookie('wp_google_search', 1, time()+3600); // 1時間有効
              }
          }
      } else {
          return FALSE;
      }
    }

    // 表示分岐用のショートコード
    function google_search_start() {
        if(!isset($_COOKIE['wp_google_search'])) {
            echo '<div style="display:none;">';
        } else {
            echo '<div>';
        }
    }
    add_shortcode('google_start', 'google_search_start');

    function google_search_else() {
        if(!isset($_COOKIE['wp_google_search'])) {
            echo '</div><div>';
        } else {
            echo '</div><div style="display:none;">';
        }
    }
    add_shortcode('google_else', 'google_search_else');

    function google_search_end() {
        echo '</div>';
    }
    add_shortcode('google_end', 'google_search_end');
}

サイト全体とするか特定のページにするか

php
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php is_google_search(); ?>
<?php is_google_search(); ?>
<?php is_google_search(); ?>

対象とするテンプレートファイルやヘッダーなどに上記コードを設定します

ページ側での表示切り分け

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php echo do_shortcode('[google_start]'); ?>
Google検索エンジンからのアクセスありがとうございます。
<?php echo do_shortcode('[google_else]'); ?>
Googleから「functions.php WordPressセキュリティー診断サービス」にて検索してください。
<?php echo do_shortcode('[google_end]'); ?>
<?php echo do_shortcode('[google_start]'); ?> Google検索エンジンからのアクセスありがとうございます。 <?php echo do_shortcode('[google_else]'); ?> Googleから「functions.php WordPressセキュリティー診断サービス」にて検索してください。 <?php echo do_shortcode('[google_end]'); ?>
<?php echo do_shortcode('[google_start]'); ?>
    Google検索エンジンからのアクセスありがとうございます。
<?php echo do_shortcode('[google_else]'); ?>
    Googleから「functions.php WordPressセキュリティー診断サービス」にて検索してください。
<?php echo do_shortcode('[google_end]'); ?>

検索エンジンでキーワード指定でアクセスしてもらいたい場合など

ブラウザからのアクセスとクローラーでのアクセスでコンテンツ内容に差異がある場合にペナルティを受けることがあるので多様しないほうが良いと思いますがこんなことできるのかなと思ってコードを作成してみました

ご利用の際は多様はおすすめいたしませんが効果的に利用できる可能性もございます

関連機能

  1. WordPressランダムに1件記事を表示させるショートコード ( カスタム投稿、任意の件数に対応 )

  2. 投稿ページのサイトマップをプラグイン無しで実装できるショートコード

  3. RSSフィードを使ってWordPress同士のコンテンツを共有

サイドバー

よく使うカスタマイズ

最近の記事

アニメの名言集

正しい戦争なんてあるもんか

機動戦士ガンダムUC
by バナージ・リンクス

Profile

PAGE TOP
Amazon プライム対象