2010-04-07 1 views
0

사용자 지정 선택 쿼리를 사용하여 일부 게시물을 표시해야합니다. 이 맞춤식 선택 검색어는 두 가지 분류로 게시물을 가져와야합니다. 정당한 쿼리가 같이 잘 작동 하나 개의 조건을 사용하는 경우WordPress - 사용자 지정 선택 쿼리를 사용하여 게시물을 표시 할 때의 문제

SELECT * 
FROM $wpdb->posts 
LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = 
$wpdb->term_relationships.object_id) 
LEFT JOIN $wpdb->term_taxonomy 
ON($wpdb->term_relationships.term_taxonomy_id = 
$wpdb->term_taxonomy.term_taxonomy_id) 
LEFT JOIN $wpdb->terms ON($wpdb->term_taxonomy.term_id = 
$wpdb->terms.term_id) 
WHERE 
$wpdb->posts.post_type = 'post' 
AND $wpdb->posts.post_status = 'publish' 
AND $wpdb->term_taxonomy.taxonomy = 'continentes' 
AND $wpdb->terms.slug = 'asia' 
AND $wpdb->term_taxonomy.taxonomy = 'pais' 
AND $wpdb->terms.slug = 'china' 
ORDER BY $wpdb->posts.post_date DESC 

:

쿼리를 봐

... 및 $ wpdb-> term_taxonomy.taxonomy = 'continentes' AND $ wpdb-> terms.slug = 'asia' ...

하지만 분류법 "대륙"및 "pais"에 게시물이 필요합니다.

안부

답변

0
... 
AND 
($wpdb->term_taxonomy.taxonomy = 'continentes' 
OR 
$wpdb->term_taxonomy.taxonomy = 'pais') 
... 

워드 프레스는 IN를 사용할 수있는 기능을 지원하는 경우 :

... 
AND $wpdb->term_taxonomy.taxonomy in ('continentes', 'pais') 
... 
0

각은 1 개 분류를 가지고 게시 가정하면, 쿼리는 포스트와 같은 결과를 반환하지 않을 수 두 대륙 모두에있을 필요는 없습니다. where 절을 다음과 같이 변경해야합니다.

AND ($wpdb->term_taxonomy.taxonomy = 'continentes' OR $wpdb->term_taxonomy.taxonomy = 'pais') 
+0

답장을 보내 주시면 감사하겠습니다. 게시물에는이 두 분류가 있습니다. "대륙"과 "파이". –

관련 문제