2014-09-05 22 views
0

所以我有8個複選框:例如A,B,C,D,E,F,G,H。它們都具有相同的名稱,我需要在meta_query中獲取它們的值作爲數組。我希望代碼可以解釋比我好:)WordPress:wp_query,meta_query array

$args = array(
    'post_type'=>'paibcresume', 
    'posts_per_page' => 10, 
    'paged' => $paged, 
    'meta_query' => array(), 
    'tax_query' => array(), 
    'orderby' => 'date', 
    'meta_key' => '', 
    'order' => 'DESC' 
); 

// Search by occupation 
//rbwwbusy - custom field 
//rbseroccupation - search checkbox fields 
if (isset($_GET['rbseroccupation']) && !empty($_GET['rbseroccupation'])) { 
    $args['meta_query'][] = array(
    'key'  => 'rbwwbusy', 
    'value' => array($_GET['rbseroccupation']), 
    'compare' => 'IN' 
); 
} 

<div class="occupation"> 
    Occupation:<br> 
    <input type="checkbox" name="rbseroccupation" value="A">&nbsp;A 
    <input type="checkbox" name="rbseroccupation" value="B">&nbsp;B 
    <input type="checkbox" name="rbseroccupation" value="C">&nbsp;C 
    <input type="checkbox" name="rbseroccupation" value="D">&nbsp;D<br> 
    <input type="checkbox" name="rbseroccupation" value="E">&nbsp;E 
    <input type="checkbox" name="rbseroccupation" value="F">&nbsp;F 
    <input type="checkbox" name="rbseroccupation" value="G">&nbsp;G 
    <input type="checkbox" name="rbseroccupation" value="H">&nbsp;H 
</div> 

所以我的問題是更好的:它的工作原理,但它只是在結果中顯示的最後選中的複選框。例如,如果我查找A和B,它只顯示B;如果我查找A,B和C,它只會顯示與C的帖子。

我需要做什麼,因此它顯示了例如具有A,B和C的帖子,不僅是最後一次檢查?

謝謝!

回答

1

你必須把輸入的名字像這樣

<div class="occupation"> 
    Occupation:<br> 
    <input type="checkbox" name="rbseroccupation[]" value="A">&nbsp;A 
    <input type="checkbox" name="rbseroccupation[]" value="B">&nbsp;B 
    <input type="checkbox" name="rbseroccupation[]" value="C">&nbsp;C 
    <input type="checkbox" name="rbseroccupation[]" value="D">&nbsp;D<br> 
    <input type="checkbox" name="rbseroccupation[]" value="E">&nbsp;E 
    <input type="checkbox" name="rbseroccupation[]" value="F">&nbsp;F 
    <input type="checkbox" name="rbseroccupation[]" value="G">&nbsp;G 
    <input type="checkbox" name="rbseroccupation[]" value="H">&nbsp;H 
</div> 

代碼的其餘部分應該很好地工作。

編輯: 你應該改變這種

'value' => array($_GET['rbseroccupation']) 

'value' => $_GET['rbseroccupation'] 

或更好,包括在那裏沒有選定

'value' => (isset($_GET['rbseroccupation'])?$_GET['rbseroccupation']:array()) 

因爲添加[]輸入名稱的情況下通過deafult使其成爲數組

+1

Definitily錯過了那部分,非常感謝!也許我不應該在晚上工作那麼晚:) – 2014-09-05 19:55:51

+0

沒問題,很高興我能幫到你@AlexChizhov – 2014-09-05 19:59:48