1

SOでより迅速な回答が得られるため、これはこの質問の繰り返しです。

そのままでは、WP eCommerce はメタ検索をサポートしていません。オンラインで本を販売していて、クライアントが最も重要なメタ タグである著者で検索できるようにする必要がある場合、これは大きな問題です。

誰かがメタ情報検索を含める方法を教えてもらえますか、それともメタ情報を検索するのに腕と脚の費用がかからないより良いプラグインがありますか?

編集:

その後、Relevanssi というより優れた検索を行うプラグインを見つけ、Alexander Gieg が独自のコードでそれをさらに拡張しました。

add_filter('relevanssi_excerpt_content','wpscproductexcerpt',10,3);
function wpscproductexcerpt($content, $post, $query) {
if ( 'wpsc-product' == relevanssi_get_post_type($post->ID) ) {
    $content = $post->post_content . ( !empty($post->post_excerpt) ? " $post->post_excerpt" : '' );
    if ( 'on' == get_option('relevanssi_expand_shortcodes') ) {
        $content = do_shortcode($content);
    } else {
        $content = strip_shortcodes($content);
    }
    // The line below fixes a minor bug in Relevanssi 2.9.14 custom excerpt generating code:
    $content = preg_replace("/\t/", ' ', $content);
}
return $content;

}

WP eCommerce の欠点を補うためにVisser Lab のカスタム フィールドのプラグインを使用しており、このプラグインからメタ情報を含める方法を理解する必要があるため、これをもう少し拡張できるようにする必要がありますか?

どうもありがとう

4

1 に答える 1

0

結局のところ、WP eCommerce はデフォルトの WordPress クエリを使用して検索結果を表示しています。これにより、ニーズに合わせてこのクエリを簡単に変更できるので、これは素晴らしいことです。コード例を次に示します。

function mySearchFilter($query) {
    // is_wp_ecommerce_search() is not an actual function - if you know how to check if the search is from WP eCommerce - you might want to do that, so that you don't modify the normal WordPress search
    if ( $query->is_search /* && is_wp_ecommerce_search() */ ) {
        $query->set('meta_query', array( array( 'key' => 'custom_key', 'value' => $_GET['custom_key'], 'compare' => 'LIKE' ) ) );
    };
    return $query;
};
add_filter('pre_get_posts','mySearchFilter');

これが WP eCommerce 検索であるかどうかを確認するための正確な関数がわかりません。そのため、&& is_wp_ecommerce_search()がコメント アウトされています。

次のように調整する必要があります。

  1. 'key' => 'custom_key'一部 - 探しているカスタム フィールドの名前を入力します。
  2. 'value' => $_GET['custom_key']- 探している値を入力します。議論から来ると$_GET思いますが、あなたのケースは異なるかもしれません。
  3. 'compare' => 'LIKE'- 以下のリンクは引数の構造に関する詳細を提供しmeta_queryますが、基本的にこれは検索されたものと同様の値を持つカスタム フィールドを探します。

クラス リファレンス/WP クエリWordPress コーデックス ページmeta_queryで、クエリ引数の詳細を確認できます。

于 2012-11-22T08:43:29.110 に答える