WordPress与类别的Mysql查询

时间:2014-06-26 19:16:51

标签: wordpress wp-query

我有这个问题:

$querystr = "
SELECT  DISTINCT meta_value  FROM $wpdb->postmeta WHERE post_id IN(     
SELECT DISTINCT wpostmeta.post_id
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
WHERE wposts.ID = wpostmeta.post_id 
AND wpostmeta.meta_key  = 'Country' 
AND wpostmeta.meta_value  = 'UK' 
AND wposts.post_type = 'post' ) AND meta_key ='city'
 ";
 $cities = $wpdb->get_results($querystr, OBJECT);

<?php if ($cities ): ?>

 <?php global $post; ?>
 <?php foreach ($cities as $c): ?>    
 <?php echo $c->meta_value; ?> <br />    
 <?php endforeach; ?>

 <?php endif; ?>

我需要添加搜索&#34;类别名称&#34;或&#34;类别ID&#34; ...我该怎么办?

谢谢;)

_______________________________ -

感谢您的回复,我已经做了一些测试,但没有工作....无论如何,你能帮助我吗? :)

$term_id = "SELECT term_id FROM wp_terms WHERE name='foods' ";
$post_id = 'SELECT object_id FROM wp_terms_relationships 
WHERE term_taxonomy_id="$term_id->term_id';     
SELECT  DISTINCT meta_value  FROM $wpdb->postmeta WHERE post_id IN(     
SELECT DISTINCT wpostmeta.post_id
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
WHERE wposts.ID = wpostmeta.post_id 
AND wpostmeta.meta_key  = 'Country' 
AND wpostmeta.meta_value  = 'UK' 
AND wposts.post_type = 'post' ) AND meta_key ='city'
AND wp_posts.ID = '$post_id->object_id' 

1 个答案:

答案 0 :(得分:0)

你错了,只是解释而不是确切的语法,你需要这样做。

    global $wpdb;
    $result = $wpdb->get_results("SELECT term_id FROM wp_terms WHERE name='foods'", OBJECT );
    $post_id = $wpdb->get_results("SELECT object_id FROM wp_terms_relationships 
    WHERE term_taxonomy_id='$result->term_id'", OBJECT );

现在,您可以通过这种方式将其传递给您的查询。

 AND wp_posts.ID = '$post_id->object_id'