質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.33%

【wordpress】五十音検索:記事名の頭文字一致で結果を抽出させたい

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 4,388

k.r.

score 30

前提・実現したいこと

wordpressで用語集を作成しています。
その中で「キーワード検索」「タグ検索」「五十音ABC検索」
の機能を作成しています。

で、当問題の「五十音ABC検索」の実装について行き詰っております。

「五十音ABC検索」でやりたいこと

1、五十音ABCボタンを設置(下記ソース参照)
2、(あ)ボタンを推した際に、検索結果は頭文字が あ で始まる記事タイトルのみの表示にしたい
3、検索結果をあいうえお順でソートしたい

「キーワード検索」に関しては、searchform.php,search.php 
参考 http://take-root.net/blog/wordpress-search-form/
「タグ検索」に関しては、tag.php
参考 http://designup.jp/wordpress-tag-105/
で実装しましたが、
「五十音ABC検索」で上記条件を満たす方法が自力では探し切れず。。。
どうかお手引きをよろしくお願い致します。。。

該当のソースコード

五十音ABCボタン

<ul class="leftnavi_list">
 <li><a href="#">あ</a></li>
 <li><a href="#">い</a></li>
 <li><a href="#">う</a></li>
 <li><a href="#">え</a></li>
 <li><a href="#">お</a></li>
</ul>

キーワード検索で利用しているsearch.php

<section class="searchResults__body">
 <ul class="searchResults__list">
<?php
if( $total_results >0 ):
if(have_posts()):
while(have_posts()): the_post();
?>
  <li class="searchResults__listItem"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; endif; else: ?>
<?php echo $search_query; ?> に一致する情報は見つかりませんでした。
<?php endif; ?>
 </ul>
</section>

補足情報(言語/FW/ツール等のバージョンなど)

html5  
css3  
php5.6  
mySOL5.6  
wordpress4.5.2 
windows7

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

例えば、AKB、SKE、NMB、HKT、NGTとあった場合に、普通なら、アルファベット順で
AKB、HKT、NGT、NMB、SKEと言う具合に並べられると思いますが、
本来のよみで言うと、「ええけえびい」とかになるかと思うので、
HKT、AKB、SKE、NMB、NGTと言う並びになって欲しい所です。そのためには、その記事タイトルがひらがなで予め別途データを用意してないとソートや検索は難しいかと思います。

AKB ええけえびい
SKE えすけえいい
NGT えぬじいてい
NMB えぬえむびい
HKT えいちけえてい

例えばこんな対応データがあって、ひらがなをソートや検索した時にそれに対応する通常タイトルを返すという感じかと思います。
内容によりけりですけれども、最初の数文字だけひらがなのデータという手もありますね。

名前でも、九十九さんとかは、漢数字の位置でソートや検索され、「つ」だよ「つ」と人間が心の中で思ってもプログラム的にはその漢字や文字が本来どう読まれるのかはわからないという点がこのあいうえお五十音検索の問題点です。

タイトルA あ
タイトルB あ
タイトルC か
...

などとして、カスタムフィードに「あ」とか何かしら分別できるキーワードを入れて、それで検索するのが良いでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/06/08 17:09

    >hidekichiさん
    ご回答ありがとうございます。
    カスタムフィールドでルビ欄を追加し、そちらを検索対象にいれることで解決しました。

    また、先頭文字の完全一致については、下記を参考にし、プラグインを独自仕様にカスタマイズして、対応しました。
    http://www.the-btones.com/archives/1107057540
    http://netaone.com/wp/wp-custom-fields-search/

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.33%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る