0
試圖做一種「高級搜索」中我發現這個代碼:在展示我的自定義字段的意義自定義搜索和代碼問題
function custom_search_where($pieces) {
// filter to select search query
if (is_search() && !is_admin()) {
global $wpdb;
$custom_fields = array('ISBN','Edicion');
$keywords = explode(' ', get_query_var('s'));
$query = "";
foreach ($custom_fields as $field) {
foreach ($keywords as $word) {
$query .= "((mypm1.meta_key = '".$field."')";
$query .= " AND (mypm1.meta_value LIKE '%{$word}%')) OR ";
}
}
if (!empty($query)) {
// add to where clause
$pieces['where'] = str_replace("(((wp_posts.post_title LIKE '%", "({$query}
((wp_posts.post_title LIKE '%", $pieces['where']);
$pieces['join'] = $pieces['join'] . " INNER JOIN {$wpdb->postmeta} AS mypm1 ON
({$wpdb->posts}.ID = mypm1.post_id)";
}
}
return ($pieces);
}
add_filter('posts_clauses', 'custom_search_where');
工作正常(文字和數字,我需要)並允許我做一個交叉搜索:我做了一個自定義搜索表單,其中的想法是按版本,標題,名稱,數字,內容和章節進行搜索。版本是自定義後類型(正常工作),標題,名稱和編號都是自定義字段(可與此腳本也沒關係),段和COLECCION是分類是通過顯示一個選擇(工作正常)
的問題是: 如果我搜索一個數字(從書中的代碼)顯示的帖子,只有一個,如同正常;但如果我搜索一個詞(書名或名稱),它會顯示很多帖子(10或更多) 我是wordpress和代碼中的新成員,所以我需要一些幫助來解決它:我需要在代碼爲正常顯示我的搜索(顯示只有一個,沒有重複)
我知道是很多代碼出來,我已經測試,但這是一個工作相對很好,我的搜索表單,除複製品。
非常感謝您提供此解決方案!我有完全相同的問題,現在已經修復:) – Forza