GoogleサジェストをWordPressの記事に利用する

GoogleサジェストをWordPressの記事に利用する

ブログ執筆をするときに、まずはネタを決めて、内容を掘り下げて行くと思います。

そのときに、Googleサジェストの関連キーワードを参考にする場合もあります。

 

image-GoogleサジェストをWordPressの記事に利用する | サロンホームページにおすすめのWordPressテーマ salonote

 

毎回、Googleに訪問して、サジェストを取得する人もいれば、取得してくれる便利なツールを利用している人もいるかもしれません。

 

image-GoogleサジェストをWordPressの記事に利用する | サロンホームページにおすすめのWordPressテーマ salonote

https://www.related-keywords.com

 

 

今回は、WordPressにキーワードの入力項目を追加して、その内容をもとに、Googleサジェストの一覧を表示するようにしました。

 

YouTube Movie

必要なコード全体

まずは、functions.phpなどに記入するコードの全体を貼り付けておきます。

次に、コードの解説をして行きます。

コードの内容説明

キーワード入力フォームを作る

まずは、定番ですが、カスタムフィールド を作ります。

add_meta_box('keywords', 'キーワード', 'insert_keywords', 'post', 'normal', 'high');

6行目のこの辺りです。

投稿以外に作りたいときは、’post’だけでなく、’page’などを追加して行きます。

 

以下ではNGのようなので、1つずつ記載するようにします。

add_meta_box('keywords', 'キーワード', 'insert_keywords', array('post','page), 'normal', 'high');

 

 

キーワードからサジェストを取得する関数を作る

18行目の

suggest_from_keywords($keywords)

というところで、キーワードからサジェストを取得するようにしています。

その関数の挙動としては

 

  1. 半角カンマで区切られているものを、配列に分割する
  2. キーワードの配列の数だけ、候補を取得して1つの配列にまとめる

という感じです。

 

//Googleサジェストで取得するURLを生成。空白があるとエラーになるのでエスケープ
$suggest_url = 'http://www.google.com/complete/search?hl=en&output=toolbar&q='. preg_replace('/( | )/','%20',$words);

//UTF-8にエンコードしないとエラーになる
$content = utf8_encode(file_get_contents($suggest_url));

//simplexml_load_stringを使って$xmlに格納
$xml = simplexml_load_string($content);

この辺りは、1つにまとめてもいいのかもしれませんが、わかりやすいように分割しました。

 

 

以下のところで、$suggest_data という配列に格納しています

foreach($xml->CompleteSuggestion as $item){
$str = (string)$item->suggestion['data'];
$suggest_data[] = $str;
}

 

あとは、受け取った配列をリストにして書き出しているだけです。

 

フォームに入力をしたら、動的にAjaxで生成するというのも、ありとは思うんですが、今のところは実装していません。

 

 

 


この記事の内容についてのご質問

[essence-mailform-pro id=1181]