WordPress の各記事に検索キーワードを設定する事はできないだろうか?とふと思いました。通販サイトなどでは商品説明とは別に検索キーワードが個別に設定できるものです。これが WordPress でできないだろうかと。
これが普通のブログであればそんな機能は不要ですが、WordPress で積極的にサイト内検索を使わせる構造のサイトだと結構重要だと思います。サイト内検索を使わせるサイトと言えば、通販サイトや素材サイトなどがあります。
例を一つ挙げましょう。例えば写真素材サイトを運営していて猫の写真をアップしたとしましょう。
タイトルは「上目遣いの猫」です。これを閲覧者の方に検索してもらうとして、「猫」で検索すれば出てきますが「ねこ」や「ネコ」では検索結果に出てきません。理想は「ねこ」や「ネコ」でも検索結果に出てきてほしいものです。しかし、これを実現するには本文に「ねこ」や「ネコ」を混ぜて書いたり、検索キーワードとして本文に羅列するしかありませんでした。しかし、これでは不自然ですし見た目も悪いです。
各記事に見えない検索キーワードを設定する方法
このような事を実現できるプラグインを探してみましたが無さそうでした。何とかできないだろうかと試行錯誤していたのですが、プラグインなしで実現できる事がわかりました。本来の使い方ではないのですが、別の使い方にする事で可能になりました。
重要な点は、WordPress は初期状態で抜粋も検索対象であるという事です。
WordPress の新規投稿画面にはオプションで「抜粋」というものがあります。抜粋は投稿記事の要約を自分で記述する所で、特に使わなくても問題ありません。あなたのサイトで抜粋を使っていなければ、これを使って見えない検索キーワードを仕込む事が可能です。
上の例では、この抜粋の部分に「ねこ ネコ ぬこ」というように検索キーワードを半角スペースなどで区切ればこれらのどの単語でもサイト内検索にヒットするようになります。
サイト上で抜粋を使用している場合
あなたが使った記憶がなくても、WordPress のテーマによっては抜粋をサイト上に表示している事もあります。「the_excerpt()」という関数で抜粋が表示されている可能性があります。実は抜粋は抜粋欄に何も書いていなくても自動で本文の頭数文字を抜粋として表示しています。
ここで、抜粋を検索キーワードとして利用してしまうと設定した検索キーワードがサイト上に表示されてしまいます。
それを避ける為に、本文の頭数文字を表示する別の方法を探す必要がありました。それは次のような方法で代替する事ができました。
<?php echo mb_substr(strip_tags($post-> post_content),0,100).'...'; ?>
記事本文の頭100文字を表示し、その後に「…」を表示しています。
【参考サイト】web帳 | wordpress 記事の文字数制限をして表示
これで準備は万全です。
おわりに
本文に検索キーワードを羅列しなくても、見えない検索キーワードを設定する事が可能です。通販サイトや素材サイトで活用できるカスタマイズかと思います。