Как добавить таксономии в качестве аргумента в wp_query - PullRequest
0 голосов
/ 10 мая 2018

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

Кто может предоставить таксономии в качестве аргумента в аргументах выбора постов?

Я создал таксономии исообщения с использованием плагина набора инструментов.

   <?php $taxonomies = get_terms([
    'taxonomy' => 'product_category',
    'parent' => 0,
    'orderby' => 'name',
    'order' => get_query_var('Order', 'ASC'),
    'hide_empty' => false,
]);
?><?php 
$i=1;
if  ($taxonomies) {
  foreach ($taxonomies  as $taxonomy ) {; ?>
<?php
   if(!empty(do_shortcode('[types term_id="'.$taxonomy->term_id.'" termmeta="secondary-category-image" size="product-main-cat" url="true"][/types]'))){
    $pro_cat_img = do_shortcode('[types term_id="'.$taxonomy->term_id.'" termmeta="secondary-category-image" size="product-main-cat" url="true"][/types]');
   }else{
    $pro_cat_img = get_template_directory_uri()."/img/product-guitar.png";
   } ?>

                        <h1>
                          <?php echo $taxonomy->name; 
//$ir=$taxonomy->name;
                          ?>
                        </h1>

                        <ul>

<?php 
            // args
            $args = array(
               'posts_per_page'  => 5,
               'post_type'    => 'product',
               'post_status'  => 'publish',
               //how can i add taxonomies asan argument here
            );
            // query            
            $the_query = new WP_Query( $args );
            $count = $the_query->post_count; 
            if( $the_query->have_posts() ):
             while( $the_query->have_posts() ) : $the_query->the_post(); 
          if(has_post_thumbnail(get_the_ID())) {                              
            $feature_image_full = simplexml_load_string(get_the_post_thumbnail(get_the_ID(), 'banner_img'));   
            $pr_img_source = $feature_image_full->attributes()->src;

                           ?>
                           <li>
                              <span>
                              <?php echo the_title(); ?>
                              </span>
                           </li>


          <?php } endwhile;  endif; wp_reset_query(); ?>

                        </ul>

Вот рабочий код


<?php $taxonomies = get_terms([
    'taxonomy' => 'product_category',
    'parent' => 0,
    'orderby' => 'name',
    'order' => get_query_var('Order', 'ASC'),
    'hide_empty' => false,
]);
?><?php 
$i=1;
if  ($taxonomies) {
  foreach ($taxonomies  as $taxonomy ) {; ?>
<?php
   if(!empty(do_shortcode('[types term_id="'.$taxonomy->term_id.'" termmeta="secondary-category-image" size="product-main-cat" url="true"][/types]'))){
    $pro_cat_img = do_shortcode('[types term_id="'.$taxonomy->term_id.'" termmeta="secondary-category-image" size="product-main-cat" url="true"][/types]');
   }else{
    $pro_cat_img = get_template_directory_uri()."/img/product-guitar.png";
   } ?>

  <div class="product-row clearfix">
                     <div class="bg-box">
                        <?php if($i==1){?>
                        <img src="<?php echo  esc_url($pro_cat_img); ?>" class="product-guitar"/>
                        <?php }else if($i==2){ ?>
                            <img src="<?php echo  esc_url($pro_cat_img); ?>" class="product-speaker"/>
                        <?php }else if($i==3){ ?>
                            <img src="<?php echo  esc_url($pro_cat_img); ?>" class="product-headphone"/>
                        <?php } ?>
                        <a href="<?php echo esc_url( add_query_arg( array('cat'=>$taxonomy->term_id), home_url('/products') ) ); ?>" class="view-more-btn button button--moema ">
                        READ MORE
                        </a>
                     </div>
                     <div class="items-list-box">
                        <h1>
                          <?php echo $taxonomy->name; 
$ir=$taxonomy->name;
                          ?>
                        </h1>

                        <ul>

<?php 
            // args
            $args = array(
               'posts_per_page'  => 5,
               'post_type'    => 'product',
               'post_status'  => 'publish',
               'tax_query' => array(
                 array (
                    'taxonomy' => 'product_category',
                    'field' => 'name',
                    'terms' => $ir,
                        )
                ),

            );
            // query            
            $the_query = new WP_Query( $args );
            $count = $the_query->post_count; 
            if( $the_query->have_posts() ):
             while( $the_query->have_posts() ) : $the_query->the_post(); 
          if(has_post_thumbnail(get_the_ID())) {                              
            $feature_image_full = simplexml_load_string(get_the_post_thumbnail(get_the_ID(), 'banner_img'));   
            $pr_img_source = $feature_image_full->attributes()->src;

                           ?>
                           <li>
                              <span>
                              <?php echo the_title(); ?>
                              </span>
                           </li>

                  <!-- <img src="<?php //echo esc_url($pr_img_source); ?>" alt="<?php the_title(); ?>">
                 -->
          <?php } endwhile;  endif; wp_reset_query(); ?>

                        </ul>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...