| @技術/プログラミング

 最近ブログをいじってばかりのような気がする(笑)

カテゴリー検索の仕様修正

 カテゴリー検索を行うと、後半部分が重複しているものまで拾い上げられることに気付く。例えば"日記"のカテゴリーを検索すると、"過去の日記"までピックアップされてしまうのだ。

 P_BLOGのフォーラムを見たところ、P_BLOG Project : フォーラム : カテゴリの重複登録というスレッドがあったので、これを参考にcategory.phpに手を入れてみた。真っ白画面になるなよ。

   $patterns = '/(*|+|^|$|?|(|))/';
    if (preg_match($patterns, $key)) {
        // (1) Use "LIKE" search
        $listup_query = "BINARY category LIKE '%".$key."%')";
    } else {
        // (2) Use MySQL Regular Expression
        $listup_query = "category REGEXP BINARY '^".$key."$|^".$key.",|,".$key.",|,".$key."$|,?".$key.",|,?".$key."$')";
    }

   $patterns = '/(?*|?+|?^|?$|??|?(|?))/';
       // (1) Use "LIKE" search
       $listup_query = "BINARY category LIKE '".$key."%')";

のように改変。

 phpのことは良くわからんのだけど、(2)のMySQLの正規表現を使う検索方法の部分を削除し、(1)のあいまい検索の部分を、公式フォーラムでkazさんがコメントしているみたいに、前の%をとってみた。エラーになって真っ白画面になるかなぁと思ったけど、思いの外うまくいった。これで"日記"カテゴリーを選んで"過去の日記"まで表示される現象は回避された。前文一致検索になったということですな。

カテゴリーリンクの分離

 SafariStandの作成者、hetimaさんを参考に、複数タグを持つ記事のカテゴリーリンクを分離してみた(ヘチマ_BLOG : P_BLOG ver 1.0.4)。これまで本,日記という感じで、まるで新しい別のカテゴリーみたいにリンクされていたのだが、, 日記という風に分離されるようになったのだ。これで複数タグ付けして投稿することをためらう理由がなくなった。気分スッキリ!