Скрыть вкладку, если нет контента - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть код ниже с вкладками Brochures и Resources. Код работает отлично, единственная проблема заключается в том, что когда любая из этих вкладок пуста, вкладка не исчезает. Пустая ссылка на вкладку контента просто остается там. Я исследовал и применил разные сценарии, но каждая попытка заканчивалась неудачей.

Я надеюсь, что вы, ребята, можете помочь мне в этом.

Извините, мой код немного длинный.

<div class="publication-slide-container">
    <ul class="tab-links">
    <li class="active"><a href="#brochure">Brochures</a></li>
    <li><a href="#article">Resources</a></li>
    </ul>

<div class="tab-content">
  <div class="publication-slide full-slider active" ID="brochure">
    <?php
$terms = wp_get_post_terms($post->ID, array( 'publication-category', 'publication-type'), $args );

foreach( $terms as $term ) {
  $args = array(
      'post_type'           => 'publication',
      'orderby'             => 'date',
      'order'               => 'ASC',
      'post_status'         => 'publish',
      'posts_per_page'      => - 1,
      'tax_query'           => array(
          'relation' => 'AND',
          array(
              'taxonomy'    => 'publication-category',
              'field'       => 'slug',
              'terms'       => array( $term->slug)
          ),
          array(
              'taxonomy'    => 'publication-type',
              'field'       => 'slug',
              'terms'       => array( 'brochure' )
          )
      )
  );

  $my_query = new WP_Query($args);
  if ($my_query->have_posts()) {
        while ($my_query->have_posts()) : $my_query->the_post(); ?>

           // something here

          <?php
          endwhile;
  } 
  wp_reset_postdata();
}
?>
  </div>

<div class="publication-slide full-slider" style="display:none;" ID="article">

    <?php
$terms = wp_get_post_terms($post->ID, array( 'publication-category', 'publication-type'), $args );

foreach( $terms as $term ) {
  $args = array(
      'post_type'           => 'publication',
      'orderby'             => 'date',
      'order'               => 'DESC',
      'post_status'         => 'publish',
      'posts_per_page'      => 10,
      'tax_query'           => array(
          'relation' => 'AND',
          array(
              'taxonomy'    => 'publication-category',
              'field'       => 'slug',
              'terms'       => array( $term->slug)
          ),
          array(
              'taxonomy'    => 'publication-type',
              'field'       => 'slug',
              'terms'       => array( 'article', 'ASEAN Insiders', 'Expert Commentary' )
          )
      )
  );

  $my_query = new WP_Query($args);
  if ($my_query->have_posts()) {
        while ($my_query->have_posts()) : $my_query->the_post(); ?>

        //something here

  <?php
          endwhile;
  } 
  wp_reset_postdata();
}
?>
  </div>

</div>

и мой сценарий

<script>
jQuery(document).ready(function() {
    jQuery('.publication-slide-container .tab-links a').on('click', function(e) {
        var currentAttrValue = jQuery(this).attr('href');


           jQuery('.publication-slide-container ' + currentAttrValue).show().siblings().hide();

            jQuery(this).parent('li').addClass('active').siblings().removeClass('active');

        e.preventDefault();
    });
});
</script>

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете попробовать следующий код для удаления пустой вкладки:

<script>
jQuery(document).ready(function() {
    jQuery('.publication-slide-container .tab-links a').on('click', function(e) {
        var currentAttrValue = jQuery(this).attr('href');


           jQuery('.publication-slide-container ' + currentAttrValue).show().siblings().hide();

            jQuery(this).parent('li').addClass('active').siblings().removeClass('active');

        e.preventDefault();
    });

 // below is my code.
      jQuery('.publication-slide-container .tab-content .publication-slide').each(function() {
        if (!jQuery(this).text().trim()) {   // empty .publication-slide
          jQuery('.publication-slide-container .tab-links')
            .find('a[href="#' + jQuery(this).attr('id')+'"]').parent().remove();   // remove related <li></li>
        }
    });
});
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...