web-dev-qa-db-ja.com

カスタム検索:投稿データと投稿メタデータによる?

私はWordPressの検索機能に苦労しています。たぶんそれは誰かが私にWordPressに組み込まれた機能がどのように機能するのかを説明することができるならばただ役に立つでしょう。しかし、これが私が欲しいものです:

  • 名前と場所による2つの検索フィールド
  • 最初のフィールドはすべての一般的な投稿データ(投稿のみ)+カテゴリをチェックするべきです
  • 2番目のフィールドは投稿のカスタムフィールドのみをチェックします
  • 記入する必要があるのは1つのフィールドだけです

まず第一に、これも可能ですか私はネイティブのPHP + SQLを使用する必要がありますか?可能であれば、どこから始めればいいのか教えてください。

5
tbleckert

組み込みのWP検索は、only a投稿 '/ Pages'のタイトルとコンテンツ、not、カスタムフィールドなどの他の要素、およびショートコードのコンテンツを表示します。カスタムフィールドを検索するプラグインはたくさんあります。

http://wordpress.org/extend/plugins/wp-custom-fields-search/ /

http://wordpress.org/extend/plugins/search-everything/ /

http://wordpress.org/extend/plugins/relevanssi/ /

「プラグインがデータベースクエリの検索セクションをコンテキスト的に追加/削除/変更することを可能にする」フィルタapply_filters_ref_array()もあります。

参考までに、検索はquery.phpで定義されており、以下のようになっています。

...if ( !empty($q['s']) ) ... ($wpdb->posts.post_title LIKE '{$n}{$term}{$n}') OR ($wpdb->posts.post_content LIKE '{$n}{$term}{$n}')

そのため、デフォルトの検索ではタイトルとコンテンツのみが唯一のものです。

6
hearvox

独自の検索テンプレートを作成し、 WP_Query を使用して検索をカスタマイズできます。ほとんどの場合、あなたが望むことをするのに十分なパラメータがあります、あなたはデータベースに飛び込む必要はありません。

例: カスタム検索テンプレートの作成

WP_Queryができること以外に何かが必要な場合は、WordPressのWPDBクラスを使用して データベースと対話する にすることができるカスタムphp/sqlを無効にする必要はありません。

1
Wyck