簡體   English   中英

WordPress:wp_query,meta_query數組

[英]WordPress: wp_query, meta_query array

因此,我有8個復選框:例如A,B,C,D,E,F,G,H。 它們都具有相同的名稱,我需要在meta_query它們的值作為數組meta_query 我希望代碼能比我更好地解釋:)

$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的帖子,而不僅僅是最后檢查的帖子?

謝謝!

您必須像這樣輸入名稱

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

因為在輸入名稱中添加[]使其成為默認數組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM