2013-06-02 85 views
0

以下查詢可以獲取自定義字段密鑰的所有值。從收集:http://goo.gl/94qw3Wordpress Query在爲其他密鑰匹配值時獲取密鑰的所有值

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

現在我選擇字段「Movie Yr」的值'2010'後,我想要獲取藝術家列表。不是所有的藝術家,只有那些與'2010'有關的藝術家。就像

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

回答

0

如果我在這裏得到你,insted採取所有的值你想添加另一個過濾器。 對不對?

如果是這樣 - 你需要的只是編輯你得到的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查詢中即可。

如果你能說出你想要做的事,我會很樂意幫助你......你的解釋是相當混亂的。

+0

添加示例。我認爲現在清除了 – user577060

+0

如果是這樣,你可以先運行sql來選擇年份。比 - 保存爲一個變量,並運行一個SQL行「SELECT ALL WHERE」並添加年份。 basic sql .. –