2013-10-29 2 views
0

사용자 지정 분류 용어를 살펴볼 검색을 구현하려고합니다. "제품"이라고하는 사용자 정의 유형과 "유형"이라고하는 사용자 정의 분류가 있습니다. 제가 워드 프레스 표준 양식을 사용하고있을 때 그것은 사실을 제외하고는 잘 작동합니다. 그것은 사용자 정의 분류 용어로 검색하지 않습니다.Wordpress 사용자 지정 분류 검색

그래서 내가 원하는 것은 다음과 같습니다. 1. "m_type"분류학 용어 을 통해 WP 검색을합니다. 2. "슬러그"대신 용어의 "이름"을 사용해야합니다.

나는 "slugs"를 적어도 보면서 추가 쿼리 바를 포함하려고했습니다.

이 코드 :

$wp_query->query['tax_query'] = array(
     array(
      'taxonomy' => 'm_type', 
      'field' => 'slug', 
      'terms' => 'pen' 
     ) 
    ); 

는 다음과 같은 SQL 생성 : 그래서

SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts INNER JOIN wp_term_relationships 
ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_postmeta ON 
(wp_posts.ID = wp_postmeta.post_id) WHERE 1=1 AND (wp_term_relationships.term_taxonomy_id 
IN (163)) AND (((wp_posts.post_title LIKE '%pen%') OR (wp_posts.post_content LIKE 
'%pen%'))) AND wp_posts.post_type IN ('product') AND (wp_posts.post_status 
= 'publish' OR wp_posts.post_author = 1 AND wp_posts.post_status = 'private') AND 
(wp_postmeta.meta_key = 'max_price') GROUP BY wp_posts.ID 
ORDER BY wp_postmeta.meta_value+0 DESC LIMIT 0, 60 

을, 기본적으로는 분류의이 종류를 사용자 정의 분류, 게시물을 검색을 추가 (* IN을 wp_term_relationships.term_taxonomy_id (163) *) 실제로 분류학 용어와 검색어 문자열을 비교하지 않습니다.

어쩌면 내가이 모든 것을 잘못하고있는 것일까 요?

+0

했나 페이지를 오전 너는 대답을 얻는다? 만약 그렇다면 나는 당신이 upvote 또는 정답으로 선택하면 감사하겠습니다. :) –

답변

1

$ 검색은 검색 매개 변수이며 어디 제목/분류 용어/컨텐츠 검색의 기준으로 결과를 가져 오기 위해이 SQL 쿼리를 사용하고 $ _REQUEST [ 'post_type'] 내가

   SELECT DISTINCT(ID) FROM 
       $wpdb->terms AS terms 
       JOIN 
       $wpdb->term_taxonomy as termtaxonomy 
       JOIN 
       $wpdb->term_relationships AS termrelationship 
       JOIN 
       $wpdb->posts AS posts 

       ON terms.term_id = termtaxonomy.term_id && 
        termrelationship.term_taxonomy_id = termtaxonomy.term_taxonomy_id && 
        termrelationship.object_id = posts.ID 
       WHERE terms.name LIKE '%".$search."%' OR posts.post_title LIKE  '%".$search."%' OR posts.post_content LIKE '%".$search."%' AND posts.post_type='".$_REQUEST['post_type'] 
관련 문제