【问题标题】:Wordpress Query Get all values for a key when match a value for another keyWordpress Query 在匹配另一个键的值时获取一个键的所有值
【发布时间】:2013-06-02 14:23:21
【问题描述】:

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

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

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

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

现在,在我选择“电影年”字段的值“2010”后,我想获取艺术家列表。不是所有的艺术家,只有那些与“2010”有关的艺术家。类似的东西

---------
Artist
---------
Artist Two  
Artist Four
Artist Five
---------

【问题讨论】:

    标签: wordpress metadata


    【解决方案1】:

    如果我在这里找到您,请采取您想要添加另一个过滤器的所有值。 我说的对吗?

    如果是这样 - 您只需编辑获得的 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 查询中。

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

    【讨论】:

    • 如果是这样,你可以先运行一个sql来选择年份。 than - 将其保存为变量,然后运行 ​​sql 行“SELECT ALL WHERE”并添加年份。基本的 sql..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 2014-10-03
    相关资源
    最近更新 更多