WordPress 記事タイトルのみ検索プラグイン WordPress Search by Title only Search regex

技術
技術

(2020年2月22日追記)WordPress記事タイトルのみ検索 function.phpでの対処方法(解決済み)

記事タイトルのみ検索したいときはWordPress search by Title onlyが一番良さげでしたがphp7.1xまで。php 7.2x 以降はエラー error:

Warning: Parameter 2 to sbtonly_filter() expected to be a reference, value given in …./vampster.com/wp-includes/class-wp-hook.php on line 286

X serverでphp7.2.17に更新したとき私もエラーを確認しました。


以下は2019年4月時点の情報ですが、筆者が使ってみた記事タイトルのみ検索するWPプラグインを2つご紹介したいと思います。

1.WordPress search by Title

2.「Search Regex」の記事タイトル検索(Search title)機能

WordPress 記事タイトルのみ検索したいとき?

WordPressの投稿一覧画面などで記事タイトルのみ検索したいと、お困りになることはありませんか?

WordPressで記事タイトルのみ検索したいとき、プラグインを使うかfunction.phpにコードを追記するかのほぼ2択かと思います。

function.phpにコードを追記する方法

実はそもそもプラグインを利用してた理由が検索結果で探してもなかなか自分のWP環境では機能しなかったためでした。

2020年2月時点で再検索してみたところやっと適合するコードを発見しました。参考サイト(tutorialmore)様にはこの場をお借りして御礼申し上げます。

詳しくは以下の参考サイトをご参照ください。

(参考)tutorialmore 「wordpress – タイトルのみを検索するようにwp-adminを制限する方」

wordpress - タイトルのみを検索するようにwp-adminを制限する方法 - 初心者向けチュートリアル
WP管理エリアの検索をタイトルのみを投稿するように制限しようとしてい

(備考)便宜上備忘用として参考コードを貼らせて頂きました。ただあまり詳しくありませんので👆の出典元サイトのご参照をおすすめします。

add_filter( 'posts_search', 'search_by_title_only', 10, 2 );
function search_by_title_only( $search, $wp_query ) {
    if ( !is_admin() || empty( $search ) ){
        return $search;
    }
    global $wpdb;
    $q = $wp_query->query_vars;
    $x = ! empty( $q['exact'] ) ? '' : '%';
    $search = '';
    $searchand = '';
    foreach ( (array) $q['search_terms'] as $term ) {
        $term = esc_sql( $wpdb->esc_like( $term ) );
        $search .= "{$searchand}($wpdb->posts.post_title LIKE '{$x}{$term}{$x}')";
        $searchand = ' AND ';
    }
    if ( ! empty( $search ) ) {
        $search = " AND ({$search}) ";
    }
    return $search;
}

プラグインを使う方法

function.phpはなるべくいじりたくない場合:プラグインを使う方法について2つの方法をご紹介しています。

1.便利!(但しphp.7.1xまで泣):WordPress search by Title 
2.検索だけなら信頼度高し?:「Search Regex」の記事タイトル検索(Search title)機能


WordPress search by Title only

php7.1xまでは結論からいうと「WordPress search by Title only」が一番良さげでした。設定はインストールのみ。

WordPress管理メニュー >プラグイン一覧>新規追加:上の画像を選択してインストールなさって下さい。

あとは本当になにもなし。初期設定画面すらありません。設定不要のため紹介する手順もありませんので手順については省略します。


7.2x 以降のWordPress search by Title only php エラー error

導入したときはphp7.1xでの利用でした。php7.2x以降は2019年10月現在対応されていません。

なおプラグイン公式Forumでもphp7.2x以降へのアップデート要望が2018年から書き込まれていました。2019年10月現在未対応(開発者のかたもお忙しそうですね汗)。便利なプラグインなのに残念。

Not working with PHP 7.2
markusv (@markusv)
1 year ago
Thanks for this simple but very helpful plug in.
But after updating to PHP 7.2 it doesn’t work anymore:
Warning: Parameter 2 to sbtonly_filter() expected to be a reference, value given in …./vampster.com/wp-includes/class-wp-hook.php on line 286
And after using the search there’s a blank screen.
Could you please fix it?
Thank you!
Markus

https://wordpress.org/support/topic/not-working-with-php-7-2/

今後アップデートがあればうれしいところですが詳細はWordPress.Orgのプラグイン公式ページなどでチェック頂けば幸いです。もちろんここでも確認できれば追記したいと思います。

以下、個人的な感想です。2019年当初他のプラグインでいまいち動作不良だった私の環境でも効いたのはこれだけでした。
※WPテーマはCocoon使用:親テーマのスキン(skin.templeteのfunction.phpに紹介されてるcodes追記したり、子テーマのfunction.phpで試しても動作不良。Cocoonの品質は疑いようもないので私の手違いかもしれませんがうまくカスタマイズできませんでした。 また、プラグインはsomewhere…さんも試しましたが適合せず。somewhere…のほうはUIが素晴らしいので使ってみたかったのですが断念。なお、これはあくまで筆者の利用環境での話。もちろんテーマCocoonは最高品質ですし、他のプラグインの動作に関する情報としても不十分ですが、あくまで1つの事例として留めて下さい。)


Search Regex 記事タイトル検索(Search title)機能

WordPressプラグイン 記事タイトルのみの検索もできる「Serch Regex」もおすすめ(slug:post-title-only-search-plugin-an)

「Search Regex」で記事タイトルのみ検索する手順

上のプラグインを見つけるまでは、個人的に Search Regexで代用するのが一番かとおもっていました。(画像はその名残です。ご容赦を)

インストール等は省略して、Search Regexで、記事タイトルのみ検索する手順だけ紹介します。

左側管理メニュー 
>「ツール」
>「Search Regex」:

初期画面

初期画面の左上「Source」というところのポップアップメニューから、「Post titile」を選択します。

設定は以上です。

あとは、検索語句にお好きな言葉をいれて検索(青色のSearchボタン)

ここでは、「英語」という文字で検索しました。

置き換え(Replace)機能など

なお、置き換え(Replace)機能などもあります。

赤字の部分に置きかえしたい言葉を入れて、「Replace」ボタンを押せば文字が置換できるはずですが、まだ試していないので、このレビューは控えます。

(例:ampで検索すると、sampleなども表示されるので、ここは右端のeditから個別に修正するなど、慎重に対応したほうが良い気もします。)

なお、codeの検索など、Search Regexの詳しい説明はネット上にたくさんあると思いますので省略します。

(おススメの理由)

おすすめ理由1:信頼性の高い検索結果

他にもいくつか「記事タイトルのみ検索」プラグインを試してみましたが、個人的に、普通は Code検索などで使われるこの「Search Regex」の title search機能がベストかと思いました。

とくに、検索結果の信頼性が高く、また、動作も比較的早い。

70件も検索結果があったので、末尾だけですが

おすすめ理由2:管理的制約

また、プラグインをあまりたくさん入れたくないという管理的制約を考慮しても、エラー対処時のcode検索機能と、記事タイトルを修正するなどのブログ管理面で使える「記事タイトルのみ検索」機能が1本のプラグインで収まる点もありがたいところ。プラグインを増やしたくない場合はSearch Regexの title search機能を使うのがよいかもしれません。


雑感

ちなみに、以前からWordPressのデフォルトで記事タイトルのみ検索できればよいのに・・・というギモンを改めて感じましたが、もうこの点は期待しても仕方がないのでしょうか。(Gutenbergも使いやすくなってよいのですがこちらも対応してもらえるとありがたいところです。タラレバを言っても仕方ないので、とりあえずはこうしたプラグインか function.phpに追記するなどで対応するしかないのでしょうか。

まとめ

以上、WordPressで記事タイトルのみ検索したい場合の対処法についてでした。

  • function.phpにコードを追記(2020年おすすめ)
  • プラグイン(古い情報)

2020年2月現在筆者の環境での話ながら修正コードがみつかったのでそちらがおすすめです。初心者のかたも慣れればコピペで対応できるのでなるべくそちらをおすすめします。

(なおfunction.phpなどWordPressの外観>テーマエディターの部分をいじるときは予期せぬこともおこりえますのでバックアップが推奨されています。この点は自己責任でおねがいします。

プラグインについては古い情報です。過去ログとして残しておきます。どうぞあしからず。

2019年4月時点での情報
(1)「WordPress search by Title only」がイチ押しでした
(2)代替案では「Search Regex」の記事タイトル検索機能。
検索自体の信頼性は(2)が高いのですが検索後の操作などの点でやはり専用?プラグインのほうが用途に合っているのではないかということで、(1)のプラグインをおすすめといたしました。
WordPressで記事タイトルのみ検索したいときにプラグインを使いたい場合の限定情報でした。


タイトルとURLをコピーしました