2017-08-01 11 views
0

私はSearchWP(WooCommerceショップで)total_salesで検索結果をランク付けするのに役立つクエリを作成しようとしています。

SearchWPには単純なfilterがあり、検索アルゴリズムに追加のSQLを注入し、必要に応じて重みを追加するのに役立ちます。

$sql .= " + (IF(UNIX_TIMESTAMP({$wpdb->prefix}posts.post_date) > UNIX_TIMESTAMP({$time_ago}), {$additional_weight}, 0))"; 

だから私は、検索結果の重量を増やすことpostmetaテーブルからTOTAL_SALES列を使用して同じことを実行しようとしましたが、それはしていません:

次の例では、最近の投稿が上位にランクすることができます作業。

$sql .= " + {$wpdb->prefix}postmeta.total_sales"; 

明らかに私は解決策が何であるか不思議です。 しかし、このような$ wpdbのクエリを構築して、それを自分でテストする方法も知りたいです。良いチュートリアルへのリンクが評価されます。

+0

これまでどんなエラーが出ていますか?何が効いていないのですか? – Difster

+0

私のコードでは、検索アルゴリズムは全く結果を返していません。 – alev

+0

'$ sql'はSQL文です。 '$ sql。=" + {$ wpdb-> prefix} postmeta.total_sales ";'を含め、生成した文全体を表示できますか?私はSQLが無効だと思っていますが、それ以上の詳細を伝えることは不可能です – Milk

答えて

0

解決策は、このSearchWPのドキュメントに従って見つかりました。これは、SearchWPプラグインが提供する別のフィルタである:https://searchwp.com/docs/kb/using-custom-field-prioritize-search-results/

は、単にのfunctions.phpに両方のフィルタを削除し、行を変更

$my_meta_key = 'my_search_priority'; 

それは魔法のように動作

$my_meta_key = 'total_sales'; 

関連する問題