2017-03-07 2 views
0

Ich versuche, eine Abfrage auf meinem Wordpress zu implementieren. Ich möchte Anzeige post_type "enseignement" mit zwei FilternMehrere Wert Anfrage benutzerdefinierte Felder WP

  1. "Zyklus"
  2. "lieu"

Dieser Code

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

arbeitet ich URL wie diese haben das /? Zyklus = cycle1 & liegen = paris

Aber wenn ich mehrere "Zyklus" oder mehrere "l ieu "so /? zyklus = zyklus1, zyklus2 & lieu = paris, marseille Ich arbeite nicht.

Wie kann ich das beheben?

Antwort

0

Wenn Sie in Ihrer URL etwas wie diese:

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

Sie einen Array in den $_GET['cycle'] und in Ihrem $_GET['lieu'] Parameter erhalten. Visual of an array in a $_GET field

Sie sie direkt in die WP_Query args wie so passieren kann:

$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', 
     ), 
    ), 
); 
Verwandte Themen