Używam wyszukiwania this code do wyszukiwania produktów ze strony internetowej Wordpress/WooCommerce.
Moje żądanie jest następujące: "http://localhost/wp/?s=D34&post_type=product" Podczas gdy s=D34
jest łańcuchem wyszukiwania.Błąd podczas wyszukiwania określonej kolumny post_type post_type przy użyciu wyszukiwania produktu WooCommerce
Gdy użytkownik wyszuka ciąg znaków. Dane będą wyszukiwane z wszystkich domyślnych pól + produktu custom filed
. Poniższa praca kod porządku z http://localhost/wp/?s=D34 ale kiedy jest łączony z url to powiedzieć
kod znajduje się poniżej
function cf_search_where($where) {
global $pagenow, $wpdb;
if (is_search()) {
$where = preg_replace("/\(\s*".$wpdb->posts.".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
"(".$wpdb->posts.".post_title LIKE $1) OR (".$wpdb->postmeta.".meta_value LIKE $1)", $where);
$where .= " AND ($wpdb->posts.post_type = 'product') ";
}
return $where;
}
add_filter('posts_where', 'cf_search_where');
Ma to zapobiec odrębne wartości
function cf_search_distinct($where) {
global $wpdb;
if (is_search()) {
return "DISTINCT"; //to prevent duplicates
}
return $where;
}
add_filter('posts_distinct', 'cf_search_distinct');
Więc Jakie modyfikacje są wymagane?
URL
http://localhost/wp/?orderby=price&post_type=product praca grzywny
ale to, co jest nie tak z http://localhost/wp/?s=D34&post_type=product
Jestem po prostu ciekawy (skoro to mi się przydarzyło); spróbuj dodać widżet koszyka lub dowolny z woocommerce widżetów (takich jak kategorie) gdzieś (tymczasowo) na twojej stronie, gdzie znajduje się twoje pole wyszukiwania, a następnie spróbuj wyszukiwania z drugim ciągiem znaków (z 's = d34'). Chciałem przeprowadzić szczegółowe wyszukiwanie woocommerce i działało to tylko wtedy, gdy miałem inne widżety woocommerce obecne na stronie z polem wyszukiwania. Może to być problem woocommerce ... –
Mogę zasugerować tylko tutaj, spróbuj użyć podanego adresu URL, może to być twój problem związany z kodowaniem url znaków D34, http: // localhost/wp /? Post_type = product & s = D34, to może dać wgląd w twój problem przez drukowanie, gdzie klauzula jak poniżej sugeruje, sugeruje – Abhishek
@dingo_d Myślę też, że jej problem z woo-commerce, lub może być, gdy post_type = "produkt" zawarty zaczyna wyszukiwanie w określonym folderze, jak widać na obrazku "Strona główna/Shop/", dobrze spróbuję z tym co zasugerowałeś. –