こんにちは
対象のページは、サイト内検索結果ページになります。
「/?s=」以降が検索キーワードになります。「/?s=abc」だと「abc」の検索結果が表示されます。
このページ(URL)を知っている全ユーザーから、アクセス自体をさせたくないのです。
「アクセス自体をさせたくない」とは、もう少し具体的に教えてもらえませんか(404 ページの表示、空ページを表示、別のページへリダイレクト、サイト内検索結果ページ自体を表示しない)?
とりあえず、検索結果ページを noindex にするといいかと思います。
下記ページなどが参考になると思います。
https://www.makealittle.net/entry/2017012001_spaminsearchthisblog
ishitakaさん
ご返信ありがとうございます。
「アクセス自体させたくない」の範囲を考えると遷移先には特にこだわりはなく、
ブログ自体に影響がない中で、このページが表示されないようになればいいと思っています。
なので、404でもいいですし、空のページでも問題ないです。
noindexは一応対応済みです。
恐れ入りますが、何卒よろしくお願いします。
posts_search フィルターフックを使用し、404 にする方法はどうでしょうか。
functions.php に、
function my_posts_search( $search, $wp_query ) {
if ( isset( $wp_query->query['s'] ) && $wp_query->query['s'] == '検索キーワード' ) {
$wp_query->set_404();
status_header( 404 );
}
}
add_filter( 'posts_search', 'my_posts_search', 10, 2 );
コード内の「検索キーワード」には、実際の検索キーワード(「/?s=」以降の文字列)を入力してください。
おはようございます。
ご丁寧にコードまで教えていただき、本当にありがとうございます!
実践してみて、報告いたします!
ishitakaさん
教えていただきましたコードの件ですが
あまりコードをいじることができず、申し訳ないのですがもう少し詳しく教えていただければ幸いです。
テーマの編集からfunctions.phpを編集するのはわかるのですが
いただいたコードをどこに挿入すればいいか、わかりません。
大変恐れいりますが、ご教示いただければとてもありがたいです。
何卒よろしくお願いいたします。
functions.php の追加する位置が不明の場合は、functions.php を編集することはおすすめできません。
functions.php を編集するには、 PHP の基礎的な知識は必要です。
間違えて編集するとサイトを壊してしまう(ページが真っ白になる等)こともあるからです。
プラグインを使用することをおすすめします。
Redirection プラグインを使用すると、指定のページを別のページや 404 へリダイレクトすることができます。
https://ja.wordpress.org/plugins/redirection/
使い方は下記ページなどが参考になると思います。
https://www.adminweb.jp/wordpress-plugin/operation/index6.html