2015-04-29 3 views
0

, вероятно, глупый вопрос, но я не могу найти «подстановочный знак» для запроса всех терминов в пользовательской таксономии.«wildcard» для всех таксономических терминов wordpress

здесь в запросе

<?php 

    $args = array( 
     'posts_per_page' => -1, 
     'post_type' =>'job_listing', 
     'orderby'   => 'ASC', 

     'tax_query' => array(
      'relation' => 'AND', 
      array(
       'taxonomy' => 'job_listing_region', 
       'field' => 'slug', 
       'terms' => EVERYTHING, 
      ), 
      array(
       'taxonomy' => 'job_listing_category', 
       'field' => 'slug', 
       'terms' => EVERYTHING, 
      ), 
     ), 

    ); 

    $loop = new WP_Query($args); 
    while ($loop->have_posts()) : $loop->the_post(); 

?>

То, что происходит в том, где «все» в целях вывода для всех терминов в этой области таксономии?

Заранее спасибо

NK

ответ

0

ОК, это немного вокруг дома, но я, по крайней мере, получил рабочую версию, что мне нужно.

Я хотел бы динамически запрашивать два выбора (две таксономии) либо конкретный термин из каждого (или обоих), либо ЛЮБОЙ термин из каждого (или обоих). Вот почему я хотел, чтобы «код/​​значение» для чего-то помещался в аргументы для ВСЕХ условий.

В результате я выполнил четыре условных оператора вокруг значений, указанных в строках запроса.

если выбрать == "all", а другой == "all", то нам просто не нужно запускать запрос таксономии, потому что мы все равно просим все. Поэтому, когда у нас есть только одна таксономия для запроса, а другая - все, мы просто пропустим ее.

Это чувствует себя немного моложе, но оно действительно работает и кажется твердым до сих пор.

Вот код (я положил выбрать значения в строки запроса и читать их в)

<!-- BEFORE WE START WE NEED THE POST ID PASSED IN THE QUERY STRING --> 

    <?php $queryStringValueforState = htmlspecialchars($_GET["state"]); ?> 
    <?php $queryStringValueforIndustry = htmlspecialchars($_GET["industry"]); ?> 

    <!-- SEARCH RESULTS --> 

    <h2>Results for: <?php echo $queryStringValueforState; ?> <?php echo $queryStringValueforIndustry; ?></h2> 

    <?php 

    // IF BOTH SELECTS ARE NOT INPUTTED (all) 

    if ($queryStringValueforState == "All regions" && $queryStringValueforIndustry == "All industries"){ 

     $args = array(
      'posts_per_page' => -1, 
      'post_type' =>'job_listing', 
      'orderby' => 'ASC' 
     ); 

    } 

    // IF BOTH SELECTS HAVE INPUTTED VALUE 

    if ($queryStringValueforState !== "All regions" && $queryStringValueforIndustry !== "All industries"){ 

     $args = array(
      'posts_per_page' => -1, 
      'post_type' =>'job_listing', 
      'orderby' => 'ASC', 

      'tax_query' => array(
       'relation' => 'AND', 
       array(
        'taxonomy' => 'job_listing_region', 
        'field' => 'slug', 
        'terms' => $queryStringValueforState, 
       ), 
       array(
        'taxonomy' => 'job_listing_category', 
        'field' => 'slug', 
        'terms' => $queryStringValueforIndustry, 
       ), 
      ), 

     ); 

    } 

    // IF REGION SELECT HAS INPUTTED VALUE AND INDUSTRY HAS NOT 

    if ($queryStringValueforState !== "All regions" && $queryStringValueforIndustry == "All industries"){ 

     $args = array(
      'posts_per_page' => -1, 
      'post_type' =>'job_listing', 
      'orderby' => 'ASC', 

      'tax_query' => array(
       'relation' => 'AND', 
       array(
        'taxonomy' => 'job_listing_region', 
        'field' => 'slug', 
        'terms' => $queryStringValueforState, 
       ), 
      ), 

     ); 

    } 

    // IF INDUSTRY SELECT HAS INPUTTED VALUE AND REGION HAS NOT 

    if ($queryStringValueforState == "All regions" && $queryStringValueforIndustry !== "All industries"){ 

     $args = array(
      'posts_per_page' => -1, 
      'post_type' =>'job_listing', 
      'orderby' => 'ASC', 

      'tax_query' => array(
       'relation' => 'AND', 
       array(
        'taxonomy' => 'job_listing_category', 
        'field' => 'slug', 
        'terms' => $queryStringValueforIndustry, 
       ), 
      ), 


     ); 

    } 

    // END CONDITIONAL STATEMENTS AND CONTINUE WITH LOOP 

    $loop = new WP_Query($args); 
    while ($loop->have_posts()) : $loop->the_post(); 

    ?> 

    <div class="single_job_wrapper"> 
     <div class="job-company-logo"></div> 

     <div class="job-content"> 
      <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> 

      <?php echo apply_filters('the_job_description', get_the_content()); ?> 
      <a class="button" href="<?php the_permalink(); ?>">Read More</a> 
     </div> 
    </div> 

    <?php endwhile; ?> 
Смежные вопросы