Wordpress查询在匹配另一个键的值时获取键的所有值

时间:2013-06-02 14:23:22

标签: wordpress metadata

以下查询可以获取自定义字段键的所有值。收集自:http://goo.gl/94qw3

function get_meta_values( $key = '', $type = 'post', $status = 'publish' ) {
global $wpdb;
if( empty( $key ) )
    return;
$r = $wpdb->get_col( $wpdb->prepare( "
    SELECT pm.meta_value FROM {$wpdb->postmeta} pm
    LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id
    WHERE pm.meta_key = '%s' 
    AND p.post_status = '%s' 
    AND p.post_type = '%s'
", $key, $status, $type ) );
return $r;
}
$my_var = get_meta_values( 'YOURKEY' );

我想获取“自定义字段B”键的所有值 为“自定义字段A”的键匹配值“2010”时。

示例:

我有2个键(2个costom字段)

-------------------------
Movie Yr | Artist
---------------------------
2000     | Artist One   
2008     | Artist Two
2012     | Artist Three
         | Artist Four  
         | Artist Five
---------------------------

通过上述查询,我​​可以得到以下列表。

---------
Movie Yr
---------
2000    
2008    
2012    
---------

现在,在选择“Movie Yr”字段的值'2010'之后,我想获得一个艺术家列表。不是所有的艺术家,只有那些与'2010'相关的艺术家。像

这样的东西
---------
Artist
---------
Artist Two  
Artist Four
Artist Five
---------

1 个答案:

答案 0 :(得分:0)

如果我让你就在这里,那就是把你想要的所有值添加到另一个过滤器中。 我是对的吗?

如果是这样 - 您只需编辑所获得的SQL并添加所需的过滤器。 这是你现在的SQL:

SELECT pm.meta_value FROM {$wpdb->postmeta} pm LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id WHERE pm.meta_key = '%s'  AND p.post_status = '%s' AND p.post_type = '%s'

%s从后面的变量中获取内容:

$key, $status, $type
按顺序

在您的情况下,您需要做的就是将额外内容添加到SQL查询中。

如果你能说出你想做什么,我很乐意帮助你...你的解释非常混乱。