こんにちは。代表のヨッチです。
ミライヨッチにお越しいただき、ありがとうございます。
WordPressでは、ウィジェットのサイト内検索から記事・固定ページを探すことができます。
ただ、検索で表示したくないページも中にはありますよね。
そんなときは、functions.phpを編集すればサイト内検索から除外することができます。
テンプレートのコードをそのまま入力すれば、たった1分で編集可能です。
というわけで、どうやってサイト内検索から記事を除外するのか?
ここから詳しく解説していきます!
WordPressで特定の記事をサイト内検索から除外する方法
先ほどお伝えしたとおり、このカスタマイズではfunctions.phpを編集します。
あまり慣れていないようであれば、ファイルをバックアップしておくと安心です。
WordPressでは、「functions.php」というファイルを編集することで機能追加ができます。 かなり踏み込んだ部分までカスタマイズできるので、慣れてきたら使いたくなってくるでしょう。 そんなfunctions …
準備ができたら、functions.phpを開きましょう!
この画面ですね。
ソースコードが表示されたら、一番下の行にコードを入力します。
入力するコードのサンプルはこちらです。
// サイト内検索から記事を除外
function search_pre_get_posts( $query ) {
if ( $query->is_search && !is_admin() ){
$query->set( 'post__not_in', array(1,61) );// 投稿IDを入力
}
return $query;
}
add_action( 'pre_get_posts', 'search_pre_get_posts' );
このコードで編集が必要なのは、4行目の数字です。
ここに投稿IDを入力することで、該当する記事がサイト内検索から除外されます。
つまり、このサンプルコードでは投稿ID 1,61の記事が除外されます。
複数のIDを指定するときは、半角カンマで区切ります。
WordPressでは、デフォルトのサンプル記事として「Hello World」が用意されています。
その記事の投稿IDが「1」です。
なので「Hello World」が残っているなら、投稿ID 1を指定すれば検索結果に出なくなります。
投稿・固定ページ・カテゴリー・タグには、それぞれIDが割り振られています。 この記事ID、カスタマイズするときには必須だと知っていましたか? functions.phpで記事を指定したり、除外するときにはIDを確認する必 …
【まとめ】コード入力するだけで簡単に検索から除外できる
サイト内検索から除外するのって、なんだか複雑そうに感じていたかもしれません。
しかし実のところ、functions.phpにコードを入力するだけでOKです。
しかもコードを自作しなくても、ここで紹介したサンプルを使うだけです。
コード内の投稿IDさえ編集すれば、どの記事でも、何記事でも除外できます。
// サイト内検索から記事を除外
function search_pre_get_posts( $query ) {
if ( $query->is_search && !is_admin() ){
$query->set( 'post__not_in', array(1,61) );// 投稿IDを入力
}
return $query;
}
add_action( 'pre_get_posts', 'search_pre_get_posts' );
こういった簡単なカスタマイズであれば、プラグインよりもfunctions.phpのほうが便利です。
というのも、サイト内の処理速度に影響を与えることが少ないからです。
プラグインの場合は、大なり小なり処理速度が遅くなる可能性があります。
なので、functions.phpも併用することで速度低下を防ぐことができるでしょう。
編集する準備をしっかり整えてから、コードを追記してカスタマイズしてみませんか?