Как сортировать по таксономии с помощью вкладок?WordPress - PullRequest
0 голосов
/ 26 августа 2018

Как сортировать по таксономии с помощью вкладок без архива ?.Просто перезагрузите страницу (или без), чтобы отфильтровать посты по таксономии.

HTML:

  <ul class="portfolio-sorting">
    <li><a href="" class="active">All Rooms</a></li>
    <li><a href="">Entertainment</a></li>
    <li><a href="">Restaurants</a></li>
    <li><a href="">Sport</a></li>
    <li><a href="">Service</a></li>
  </ul>

PHP (цикл WordPress):

    <?php $gallerys_posts = new WP_Query($args); //The argument $args must be passed [function set_arges]
    wp_reset_query();


if( $gallerys_posts->have_posts() ) :
  while ( $gallerys_posts->have_posts() ) :
    $gallerys_posts->the_post(); ?>

    <div class="col-lg-4 col-md-4 col-sm-6 col-xs-12 shuffle-item filtered">
      <div class="portfolio-item">
        <a href="<?php echo get_permalink(get_the_id());?>">
          <?php if ( get_the_post_thumbnail(get_the_id()) )  { ?>
            <?php echo get_the_post_thumbnail( get_the_id(), array(620, 423 )); ?>
          <?php } ?>
          <div class="portfolio-overlay">
            <div class="caption">
              <?php echo get_title(); ?>
              <span>
                <?php echo get_the_content(); ?>
              </span>
            </div>
          </div>
        </a>
      </div>
    </div>

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

PHP (возврат)$ args для цикла):

<?php function set_arges($type_filter = 'all') {
  switch ($type_filter) {
    case 'all':
      $args= array( 
          'post_type'           => 'gallerys',
          'posts_per_page'      => '-1',
          'tax_query'           => array(
            array(
              'taxonomy' => 'gallerys_type',
              'field'    => 'slug',
              'terms'    => 'all-rooms'
            )
          )
      );
      return $args;
      break;

    case 'entertainment':
        $args= array( 
          'post_type'           => 'gallerys',
          'posts_per_page'      => '-1',
          'tax_query'           => array(
            array(
              'taxonomy' => 'gallerys_type',
              'field'    => 'slug',
              'terms'    => 'entertainment'
            )
          )
        );
        return $args;
        break;

    case 'restaurants':
      $args= array( 
          'post_type'           => 'gallerys',
          'posts_per_page'      => '-1',
          'tax_query'           => array(
            array(
              'taxonomy' => 'gallerys_type',
              'field'    => 'slug',
              'terms'    => 'restaurants'
            )
          )
      );
      return $args;
      break;

    case 'sport':
      $args= array(
          'post_type'           => 'gallerys',
          'posts_per_page'      => '-1',
          'tax_query'           => array(
            array(
              'taxonomy' => 'gallerys_type',
              'field'    => 'slug',
              'terms'    => 'sport'
            )
          )
      );
      return $args;
      break;

    case 'services':
      $args= array( 
          'post_type'           => 'gallerys',
          'posts_per_page'      => '-1',
          'tax_query'           => array(
            array(
              'taxonomy' => 'gallerys_type',
              'field'    => 'slug',
              'terms'    => 'services'
            )
          )
      );
      return $args;
      break;
  }
} 

По умолчанию $ filter_type принимает значения 'all', и отображаются все сообщения, но при нажатии на кнопку вкладок значение должно измениться, сообщения также должны измениться.Как это можно реализовать?Большое спасибо !!!

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