今回は、自分のサイトにGoogle APIを利用してキーワードサジェストツールを設置する方法を紹介します。
サジェストツールは、goodkeywordなど便利なものもありますが、重たくて繋がらないときや、自分のサイトから手軽にアクセスしたい時には良いかもしれません。
目次
主な手順
キーワードツールをWordpressに設置するには、主に以下の3手順が必要です。
- page.phpを複製しpage-suggest.phpのように名前をつける
- page-suggest.phpをページテンプレートとして使用するために編集
- ツール用の固定ページを作成する
こんな感じで、少しWordpressテンプレートをカスタマイズしたことがある方なら、特に苦もなく設置できると思います。
ファイルの作成
まずは、お使いのテーマのpage.phpテンプレートファイルをコピーし複製します。複製する場所は、テーマフォルダ内であれば、サブフォルダ内でもOKです。もちろん、テーマフォルダ直下でも構いません。
その複製したファイルにpage-suggest.php等の名前を付けてください。名前は、どのような名前にしても良いので好きな名前をつけてください。(以降では、page-suggest.phpという名前をつけたとして説明します。)
ファイルを編集しページテンプレート化
page.phpテンプレートを複製したものを編集します。
固定ページテンプレートファイルの宣言
まずは、page-suggest.phpファイルを開いて、先頭に以下のコードを挿入してください。
<?php /** * Template Name: Google keyword suggest */ ?>
これは、固定ページにテンプレートファイルとして利用するための宣言みたいなものです。この、「Template Name: テンプレート名」がないと、Wordpressに固定ページのテンプレートファイルとして認識されません。
メインカラム内にサジェスト機能を実装
page.phpを複製した、page-suggest.phpファイルの内容を編集します。
テンプレートのメインカラム内にあるものは、全て不要なので削除してください。
the_title();とか、the_content();とかは不要なので全て削除します。
その後、削除した部分に、以下のコードを挿入します。
<?php //Googleキーワードサジェストツール $my_input_word = ''; if ( isset($_GET['my_input_word']) ) $my_input_word = htmlspecialchars(strip_tags($_GET['my_input_word'])); ?> <h1> <?php if ( $my_input_word ): ?> <q><?php echo $my_input_word; ?></q>のサジェスト <?php else: ?> キーワードサジェストツール <?php endif; ?> </h1> <p>キーワードを入力してください。</p> <form method="GET" action="<?php the_permalink(); ?>"> <input type="text" name="my_input_word" value="<?php echo $my_input_word; ?>"> <input type="submit" name="btn1" value="送信"> </form> <?php $added_letters_array= array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","あ","い","う","え","お","か","き","く","け","こ","さ","し","す","せ","そ","た","ち","つ","て","と","な","に","ぬ","ね","の","は","ひ","ふ","へ","ほ","ま","み","む","め","も","や","ゆ","よ","ら","り","る","れ","ろ","わ","を","ん","が","ぎ","ぐ","げ","ご","ざ","じ","ず","ぜ","ぞ","だ","ぢ","づ","で","ど","ば","び","ぶ","べ","ぼ","ぱ","ぴ","ぷ","ぺ","ぽ"); if($my_input_word): ?> <div style="clear:left"></div> <table> <thead> <tr> <th>サジェスト元</th> <th>キーワード</th> </tr> </thead> <tbody> <?php foreach ($added_letters_array as $added_letter): $my_input_word_added_letter=$my_input_word.$added_letter; $url = "http://www.google.com/complete/search?hl=ja&output=toolbar&ie=utf_8&oe=utf_8&q=". urlencode($my_input_word_added_letter); $toplevel = simplexml_load_file($url); foreach ($toplevel->CompleteSuggestion as $completeSuggestion): $suggest_word_array[] = $completeSuggestion->suggestion->attributes()->data; echo "<tr><td>".$my_input_word_added_letter."</td>\t<td>". $completeSuggestion->suggestion->attributes()->data."</td></tr>\n"; endforeach; endforeach; ?> </tbody> </table> <?php endif; ?>
コードは、ウェブシュフさんの以下の記事に書かれているコードを参考にし、少し変更を加えました。
Simplicityテーマで利用する場合は、以下のようになります。
参考までに、作成したpage-suggest.phpテンプレート内のコードをすべてを載せておきます。クリックすると開きます。
<?php /** * Template Name: Google keyword suggest */ get_header(); ?> <div class="article"> <?php //Googleキーワードサジェストツール $my_input_word = ''; if ( isset($_GET['my_input_word']) ) $my_input_word = htmlspecialchars(strip_tags($_GET['my_input_word'])); ?> <h1> <?php if ( $my_input_word ): ?> <q><?php echo $my_input_word; ?></q>のサジェスト <?php else: ?> キーワードサジェストツール <?php endif; ?> </h1> <p>キーワードを入力してください。</p> <form method="GET" action="<?php the_permalink(); ?>"> <input type="text" name="my_input_word" style="float:left;" value="<?php echo $my_input_word; ?>"> <input type="submit" name="btn1" value="送信" style="margin-left:5px;padding:9px;"> </form> <?php $added_letters_array= array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","あ","い","う","え","お","か","き","く","け","こ","さ","し","す","せ","そ","た","ち","つ","て","と","な","に","ぬ","ね","の","は","ひ","ふ","へ","ほ","ま","み","む","め","も","や","ゆ","よ","ら","り","る","れ","ろ","わ","を","ん","が","ぎ","ぐ","げ","ご","ざ","じ","ず","ぜ","ぞ","だ","ぢ","づ","で","ど","ば","び","ぶ","べ","ぼ","ぱ","ぴ","ぷ","ぺ","ぽ"); if($my_input_word): ?> <div style="clear:left"></div> <table> <thead> <tr> <th>サジェスト元</th> <th>キーワード</th> </tr> </thead> <tbody> <?php foreach ($added_letters_array as $added_letter): $my_input_word_added_letter=$my_input_word.$added_letter; $url = "http://www.google.com/complete/search?hl=ja&output=toolbar&ie=utf_8&oe=utf_8&q=". urlencode($my_input_word_added_letter); $toplevel = simplexml_load_file($url); foreach ($toplevel->CompleteSuggestion as $completeSuggestion): $suggest_word_array[] = $completeSuggestion->suggestion->attributes()->data; echo "<tr><td>".$my_input_word_added_letter."</td>\t<td>". $completeSuggestion->suggestion->attributes()->data."</td></tr>\n"; endforeach; endforeach; ?> </tbody> </table> <?php endif; ?> </div> <?php get_footer(); ?>
こんな感じで、メインカラム内にサジェストツールの実装部分を挿入します。
サジェストツール用の固定ページを作成
最後に、ツール用の固定ページを作成します。
WordPress管理画面から、「固定ページ→新規追加」を選択し、固定ページの新規追加を行います。
新規ページは、以下のように作成してください。
- ページタイトル:Googleキーワードサジェストツール
- パーマリンク:suggest
- ページ本文:記入不要
- 公開状態:非公開(一応セキュリティーのため)
- テンプレート:Google keyword suggest
これらの設定が終了したら「公開」ボタンを押してください。
これで、自サイト内に、簡易Googleキーワードサジェストツールが作成されました。
動作確認
作成した、固定ページに移動すると以下のように表示されます。
キーワードを入力して「送信」ボタンを押すと、以下のように表示されます。
以下のように、複合キーワードでもOKです。
まとめ
こんな感じで、Googleのキーワードサジェストツールが、結構簡単に作れます。
もちろん本格的な、キーワードツールには敵わないかもしれません。
けれど、ブログ記事のタイトルに、ちょっと悩んだときなどは、サイト内をちょこっと移動してヒントにしたりするのに重宝します。