2012-11-19 82 views
1

這是一個repeat of this question,因爲我在SO上得到更快的答案。Wp電子商務元信息搜索

開箱即用,WP電子商務不支持元搜索。如果您在網上銷售圖書並且需要客戶能夠通過最重要的Meta標籤進行搜索,那麼這是個大問題。

有人可以告訴我怎麼可以去包括元信息搜索還是有更好的插件,不花費胳膊和腿來搜索元信息呢?

編輯:

因爲我已經找到了一個插件,會做一個名爲Relevanssi和亞歷山大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; 

}

因爲我是Visser Lab's Custom Field's plugin用戶,所以我需要能夠進一步擴展這一點,以彌補WP電子商務的不足之處,並且需要弄清楚如何包含元信息從這個插件?

非常感謝

+0

你知道[WordPress Meta Queries](http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters)嗎?我沒有時間檢查WP電子商務插件的代碼,但基本上,如果您可以連接到插件製作的查詢,則可以添加一個自定義Meta Query,其中包含您的自定義字段。 'meta_query'查詢參數是一個數組或多個數組,其中一個包含'key'(自定義字段名稱),'value'(要匹配的值),'compare'(比較運算符),'type'(是否它的文本,數字,日期等) –

+0

嗨尼古拉。 WP電子商務利用WP的通用搜索。那麼我是否應該勾選WP的查詢來進行搜索? – SixfootJames

+0

是的 - [這裏](http://wordpress.org/support/topic/limit-search-results-to-custom-post-type#post-1671437)你可以看到如何做到這一點的例子。只需將其修改爲您的需求,您就可以做好準備:) –

回答

0

從原來的東西,WP電子商務使用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電子商務搜索,這就是爲什麼&& is_wp_ecommerce_search()被註釋掉。

你將不得不調整:

  1. 'key' => 'custom_key'部分 - 輸入您的自定義字段,你要尋找的名稱。
  2. 'value' => $_GET['custom_key'] - 輸入您要查找的值。我認爲它將來自$_GET的論點,但你的情況可能會有所不同。
  3. 'compare' => 'LIKE' - 下面的鏈接將提供有關meta_query參數結構的詳細信息,但基本上這會查找具有類似於搜索結果的自定義字段。

您可以在Class Reference/WP Query WordPress代碼頁上找到有關meta_query查詢參數的更多詳細信息。