2012-04-10 4 views
0

루프 외부에서 게시물 개수를 표시하기위한 사용자 정의 쿼리가 필요합니다. 나는이 SQL이Wordpress는 사용자 정의 게시물 수를 얻습니다.

Taxanomy = ad_cat 
Term_id = 32 
Meta_key = cp_type 
Meta_value = sale 
Post-type = ad_listings 

:

$query = " 
SELECT * 
FROM $wpdb->posts, $wpdb->postmeta 
WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id 
AND $wpdb->terms.term_id = '32' 
AND $wpdb->postmeta.meta_key = 'cp_tips' 
AND $wpdb->postmeta.meta_value = 'Pārdod' 
AND $wpdb->posts.post_status = 'publish' 
AND $wpdb->posts.post_type = 'ad_listing' 
"; 

을하지만이 쿼리에 난 용어 추가하는 방법을 해달라고 :

약관 SQL :

결과에 의해 필터를 할 필요가

SELECT ID as PID 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) 
WHERE $wpdb->posts.post_status = 'publish' 
AND $wpdb->term_taxonomy.taxonomy = 'ad_cat' 
AND $wpdb->term_taxonomy.term_id = 32 

모두 넣는 방법 그녀를 갖다?

답변

0

나는 추천한다 wp_query
특히 분류학 부분을 테스트하지는 않았지만, 테스트를 거치지 않았다.
wp_query의 큰 장점은

<?php 
$query = array (
    'post_type' => 'ad_listing', 
    'post_status' => 'publish' , 

    //que custom field 
    'meta_query' => array(
     array(
      'key' => 'cp_tips', 
      'value' => 'Pardod' 
     ) 
    ), 

    //term 32 
    'tax_query' => array(
     array(
      'taxonomy' => 'ad_cat', 
      'field' => '32', 
        'terms' => array('action', 'commedy') 
     ) 
    ) 
); 

$ad_list = new WP_Query($query); 

날이

0

당신은 그것을 WP_Query를 사용 할 수있는 어떻게되는지 알려 그것에 the loop를 사용할 수 있다는 것입니다. tax_query와 meta_query의 부분을 사용해야한다. 그런 다음 found_posts 속성에서 개수를 가져올 수있다. 코덱스를 확인하십시오, WP_Query를 사용하는 모든 옵션에 대한 예제와 더 나은 설명이 있습니다

관련 문제