2017-03-07 113 views
0

我試圖在我的wordpress上實現查詢。我想顯示post_type 「enseignement」 有兩個過濾器多值查詢自定義字段WP

  1. 「循環」
  2. 「代替」

此代碼的工作

<?php if($_GET['cycle'] && !empty($_GET['cycle'])) 
{ 
$cycle = $_GET['cycle']; 
} else { 
} 
if($_GET['lieu'] && !empty($_GET['lieu'])) 
{ 
$lieu = $_GET['lieu']; 
} else { 
} 
?> 

<?php 
       $args = array(
       'post_type' => 'enseignement', 
       'posts_per_page' => 10, 
       'meta_query' => array(
         'relation' => 'AND', 
         array(
          'key' => 'cycle', // name of custom field 
          'value' => $cycle, // matches exactly "red" 
          'compare' => 'LIKE', 
                 ), 
       array(
        'key'  => 'lieu', 
        'value' => $lieu, 
        'compare' => 'LIKE', 

     ), 
    ), 


       ); 
      $loop = new WP_Query($args); 
      while ($loop->have_posts()) : $loop->the_post(); ?> 
      <?php get_template_part('content', 'enseignement', get_post_format());?> 
      <?php endwhile; ?> 

我有網址喜歡這款本/?週期= cycle1 & lieu =巴黎

但是,如果我想多個「循環」或多個「l ieu「like this /?cycle = cycle1,cycle2 & lieu =巴黎,馬賽我不工作。

我該如何解決這個問題?

回答

0

如果您在您的網址是這樣的有:

/?cycle[]=cycle1&cycle[]=cycle2&lieu[]=paris&lieu[]=marseille

您將獲得在$_GET['cycle']並在$_GET['lieu']參數數組。 Visual of an array in a $_GET field

您可以直接將它們傳遞到WP_Query ARGS像這樣:

$args = array(
    'post_type'  => 'enseignement', 
    'posts_per_page' => 10, 
    'meta_query'  => array(
     'relation' => 'AND', 
     array(
      'key'  => 'cycle', // name of custom field 
      'value' => $_GET['cycle'], // matches any field in the $_GET['cycle'] array 
      'compare' => 'LIKE', 
     ), 
     array(
      'key'  => 'lieu', 
      'value' => $_GET['lieu'], // matches any field in the $_GET['lieu'] array 
      'compare' => 'LIKE', 
     ), 
    ), 
);