0

以下查询可以获取自定义字段键的所有值。收集自: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' );

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

例子:

我有 2 个键(2 个自定义字段)

-------------------------
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
---------
4

1 回答 1

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 查询中。

如果您能说出您想做什么,我会很乐意为您提供帮助……您的解释很混乱。

于 2013-06-02T18:03:01.430 回答