2011-12-19 6 views
0

나는이 쿼리를 통해 카테고리, 태그 및 사용자 정의 필드별로 필터링하는 WordPress 블로그에서 게시물을 선택했습니다.사용자 정의 필드, 태그 및 카테고리로 필터링 wordpress 질문

SELECT wp_posts.* 
FROM wp_posts 
WHERE wp_posts.post_type = 'post' AND wp_posts.post_status = 'publish' 

AND  (  SELECT COUNT(*) 
       FROM wp_term_relationships 
       LEFT JOIN wp_term_taxonomy ON (wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id) 
       LEFT JOIN wp_terms ON (wp_term_taxonomy.term_id = wp_terms.term_id) 
       WHERE wp_posts.ID = wp_term_relationships.object_id 
       AND  (wp_terms.name = 'collaborazioni' && wp_term_taxonomy.taxonomy = 'category') 
         || 
         (wp_terms.name = 'jammin' && wp_term_taxonomy.taxonomy = 'post_tag') 
      ) >= 1 

AND  (  SELECT COUNT(*) FROM wp_postmeta 
       WHERE wp_postmeta.post_id = wp_posts.ID 
       AND wp_postmeta.meta_key = 'Product-code' 
       AND wp_postmeta.meta_value = 'xxxxxx' 
       ) >= 1 

그러나 나는 그것이 약간 무겁다 고 생각합니다. 당신은 더 나은 해결책을 가지고 있습니까?

감사합니다. Pietro.

답변

0

정확하게 짧게 하시겠습니까? 벌써 꽤 짧아 보인다.

추신. 검색어에 wp_ 대신 {$wpdb->prefix}을 사용하려고 할 수 있습니다.

+0

나는 무엇이 더 짧아야하는지 정확하게 모른다, 나는 이것을 할 bettere 방법이 있는지 묻고 있었다. 어쨌든 $ wpdb-> prefix, prefix;를 사용하겠습니다.) – pietrosld

+0

아니요, 거기서 최대한 줄였습니다. 그리고 $ wpdb-> 접두어는 접두사가 기본 wp_가 아닌 Wordpress 설치 내에서 실행될 수있는 모든 스크립트에서 사용하고있는 것입니다. 도움이되는 작은 물건. –

관련 문제