Search Meter / Recent Searches : ちょっとコードに手を入れた

本ブログの右ペインにある「最近の検索キーワード」(Search MeterプラグインのRecent Searchesウィジェット)のリンクが正しく機能してなかったので、アドホックな修正を入れてみた。

%cd wp-content/plugins/search-meter/
%diff search-meter.php search-meter.org.php
137,143c137,143
< //    if ($wp_rewrite->using_permalinks()) {
< //            $structure = $wp_rewrite->get_search_permastruct();
< //            if (strpos($structure, '%search%') !== false) {
< //                    $relative_url = str_replace('%search%', rawurlencode($term), $structure);
< //            }
< //    }
< //    if ( ! $relative_url) {
---
>       if ($wp_rewrite->using_permalinks()) {
>               $structure = $wp_rewrite->get_search_permastruct();
>               if (strpos($structure, '%search%') !== false) {
>                       $relative_url = str_replace('%search%', rawurlencode($term), $structure);
>               }
>       }
>       if ( ! $relative_url) {
145c145
< //    }
---
>       }

パーマリンクの形式がうまく取れてない感じなんだけど、他のプラグインとの絡みなのか、データ移行時にうまくいってないのかは不明。

追記:
問い合わせがあったので、追記。上記リストはdiffコマンドの実行結果。新リストの137から143行目が旧リストの137から143行目に相当し、「>」で始まる行が新リストの内容、「<」で始まる行が旧リストの内容。また新リスト、および、旧リストの145行目も同様に変更があるという表示。
結局何をしているかというと、この部分でパーマリンク形式を判断して、リンクのURLを変更しているようなのだが、「検索結果のパーマリンク」は指定してないはずなのに取得できてしまう。その結果生成されたURLをクリックしても検索ページに飛べずエラーになってしまう。しょうがないので、判断文をコメントアウトして、強制的に「http://example.jp/?s=検索文字列」の標準形式で出力するように変更している、と。
たぶん正対処は「検索結果のパーマリンク」指定を修正して、かつ、それを設定している部分を特定して変更する、なんだろうけどそこまで時間がなかったので、アドホックに出力時で対応、ということです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です