2012-04-10 18 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の
大きな利点は、あなたが私はそれがあなたがWP_Queryを使用してそれを行うことができます

0

を行く方法を知ってみましょう

その上
<?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); 

を使用することができるということです。 tax_queryとmeta_queryの部分を使用する必要があります。次に、found_postsプロパティからカウントを取得できます。コーデックスを確認して、WP_Queryを使用するすべてのオプションの例とより良い説明があります

関連する問題