キーワードを分析するのは、WordPressの機能として存在しません。タグがマッチしたとかなら別です。WordPress Related Post for Japaneseなどで使われている形態素解析という処理が必要になります。茶筌(chasen)もスタンドアローンで使えるものになります。
形態素解析というのは、英語でいうシソーラス辞書みたいなことをしてくれるわけですが、日本語の場合、語尾変化や同意語・同義語の多さ、接続の複雑さ、なにより単語に分けるという作業が非常に難しいため、難解なアルゴリズムになります。
私は、WordPressの検索機能を削除して、Google検索を入れてあります。これが一番簡単な処理方法なのではないでしょうか。Yahoo!検索のAPIもあるはずですが、私は知りません。
「実は日本語をコンピュータで分析するのって大変なんですよ。」
蛇足:すぐ上の括弧付きの文章から、単語を切り分けなさい。コンピュータにどんな指示を出したらいいでしょう。
kaizawa様
さっそくのご回答ありがとうございます。
日本語は様々な言い回しもありますし、単語に分ける作業の難解さが私にもよく分かりました。ご提案をいただいたGoogle検索を入れるのが一番簡単で確実な処理方法だと思います。
ただ、私の質問の仕方が悪く内容を正しくお伝えできてない点もあるようでしたので、申し訳ないのですが引き続きご質問をさせてください(Google検索の場合は検索結果の表示がブログのテーマのイメージとは異なるので、可能であればWordPressの検索機能を活かしたいと考えております)。
例えば、WordPressの検索機能で「買い物」というワードで検索をすると、「買い物」というワードが記事のタイトルや本文に含まれる記事(single.php)が検索結果に表示されると思います。そのとき、検索結果に表示される記事の順序としては、投稿日時が新しい記事から順番に表示されます。
このWordPressの検索の仕様だと、記事のタイトルに「買い物」と入っていたとしても、本文の端っこに「買い物」と書いていたとしても、投稿日時順にしか検索結果が表示されないので、より検索ワードに合致していると思われる”タイトルに「買い物」という文字が入っている記事”も投稿日時によっては検索結果の最後に表示されてしまいます。
検索ワードへの合致度まで考えるのは非常に難しくなってしまうため、せめてタイトルに「買い物」というワードが入っている記事を、本文にしか「買い物」と入っていない記事より検索結果の上位に表示をさせることができないか、と思った次第です。
お手数をおかけいたしますが、引き続きご教授いただけますようお願いいたします。
search.php
の
<?php while (have_posts()) : the_post(); ?>
….
<?php endwhile; ?>
の部分に、判断を入れてやることになると思うのですが、Searchによって渡されるのが、post_ID
であり、そこからタイトルを引き出して比較一致したものを上位に表示する…
やり方が思いつきません。^^;
Google検索もCSSで見栄えを本体と同じようにすることは、無理ではありません。そっちに逃げるってのは…ダメッスよね。
kaizawa様
再度、ご回答をいただきありがとうございます。
私自身がphpの知識が不足しているため、
ヒントをいただきましたが、それを活かすのは難しそうです。
別途、関連の情報を探してみたりしたのですが、
そちらも特に引っかかる情報はありませんでした。
Google検索もCSSで見栄えを本体と同じようにすることは、無理ではありません。そっちに逃げるってのは…ダメッスよね。
アドバイスありがとうございます。
見栄えを合わせることができればGoogle検索でもまったく問題ありませんので、こちらの方法で実現を目指してみます。