
WordPressの管理画面にある投稿一覧のワード検索にて、カスタムフィールドの内容をを含める方法です。カスタムフィールドを修正したいけど、記事が大量にあったりどこにあるのか分からない場合に重宝すると思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
function cf_search_join( $join ) { global $wpdb; if ( is_search() ) { $join .=' LEFT JOIN '.$wpdb->postmeta. ' ON '. $wpdb->posts . '.ID = ' . $wpdb->postmeta . '.post_id '; } return $join; } add_filter('posts_join', 'cf_search_join' ); function cf_search_where( $where ) { global $pagenow, $wpdb; if ( is_search() ) { $where = preg_replace( "/\(\s*".$wpdb->posts.".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/", "(".$wpdb->posts.".post_title LIKE $1) OR (".$wpdb->postmeta.".meta_value LIKE $1)", $where ); } return $where; } add_filter( 'posts_where', 'cf_search_where' ); function cf_search_distinct( $where ) { global $wpdb; if ( is_search() ) { return "DISTINCT"; } return $where; } add_filter( 'posts_distinct', 'cf_search_distinct' ); |
WordPressの検索機能は「posts」テーブルのみ検索されるようになっているので、
カスタムフィールドがある「postmeta」テーブルとpostsテーブルを外部結合し、カスタムフィールドを含めるように検索クエリを変更。
重複したデータを除外してデータを取得するDISTINCTを指定しているみたいです。
参考サイト
https://adambalee.com/search-wordpress-by-custom-fields-without-a-plugin/
「スタードメイン」は、年額100円からの独自ドメイン+無料サーバーも付いてきます。
WordPressも使えるので、練習も兼ねてお手軽にサイト運営ができちゃいます。
ドメイン取得は同じところで取得しておくと便利ですよ。
お名前.comは1円から購入(1年間)できるドメインがあるので、いろいろと便利で経済的です。
WordPressも使えるので、練習も兼ねてお手軽にサイト運営ができちゃいます。

ドメイン取得は同じところで取得しておくと便利ですよ。
お名前.comは1円から購入(1年間)できるドメインがあるので、いろいろと便利で経済的です。

関連記事
2022/09/17
ワードプレスの管理画面の投稿一覧に、最終更新日を表示させる方法です。 記事によっては何度もリライトを繰り返す場合もあります。特定の記事であれば、検索で探したり該...
2022/09/03
ワードプレスのアーカイブやカテゴリーページで、特定のカテゴリーのみ並び順を変更したい場合のやり方です。 <?php query_posts($query_...
2022/08/24
ブログなどで「この記事は○年前の内容です」など表示されるのを見かけたことはありませんか? 技術や情報系の記事では、最新の情報では無いと現在では役に立たないことも...
2022/08/08
ワードプレスのカテゴリ一覧などを任意に並び替えて表示。最終更新日を最初に表示させたい時など状況によって表示順を変えたい時の方法です。 デフォルトでは投稿日が新し...
2022/07/27
Welcart2.6から商品画像の登録方法の仕様変更があり、今まで不満だった内容が改善されました。それに伴い旧バージョンからアップデートすると、画像が表示されな...