WordPressブログを検索していると、結果が1件しか表示されないことがあります。サイトの整理状況にもよりますが、これはユーザーが探していたもののはずです。ユーザーの1人から、検索クエリの結果が1件だけの場合にその投稿にリダイレクトする方法があるか尋ねられました。この記事では、検索クエリが1件しか一致しない場合にユーザーを投稿にリダイレクトする方法を紹介します。
テーマのfunctions.phpファイルを開き、以下のスニペットを貼り付けるだけです。
add_action('template_redirect', 'one_match_redirect');
function one_match_redirect() {
if (is_search()) {
global $wp_query;
if ($wp_query->post_count == 1) {
wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
}
}
}
ただし、この機能を期待しないユーザーもいることに注意してください。そのため、彼らを混乱させる可能性があります。


ケイシー・レサード
私の場合はうまくいきました。WordPressでローカル検索エンジンを運営しており、しばらくこの解決策を探していました。説明通りに動作します。本当にありがとうございます!
Eric
特定のフレーズを検索したときに、定義したURLにリダイレクトされるイースターエッグのようにしたいです。例えば、「死んだ人が見える」と検索した場合にリダイレクトされるようにしたいです。
Nebulas ウェブサイトデザイン
このコードのおかげでクライアントはとても喜んでくれましたし、できるとは思っていませんでした。しかし、Relevanssi検索プラグインを使用しているのですが、これは動作しませんか?
carlos
検索結果の投稿数がいくつであっても、最も関連性の高い投稿に任意の検索クエリをリダイレクトしたい場合はどうすればよいですか?それができたら本当に嬉しいです。
編集スタッフ
上記のコードからif条件文を削除すれば、それが実現できます。
管理者
CalebZahnd
これは便利ですね。ありがとうございます!