ACF Repeater field [shortcode] - не показывать ничего, если подполя пустые - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь создать список TO DO с помощью расширенных пользовательских полей ACF в Wordpress.

Я хочу добиться короткого кода, который будет отображать повторитель TO DO, заключенный в теги Div с заголовком H3.

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

Я дошел до этого:

add_shortcode( 'TO-DO-LIST', 'my-to-do-list');  
function my-to-do-list($atts){ 

      if(!function_exists('get_field'))
        return;

      ob_start();
      // check if the repeater field has rows of data
      if( have_rows('acf_to_do_repeater_group') ):

          echo '<div id="to-do-list-wrapper">';
          echo '<h3>TO DO:</h3>';
          echo '<div class="to-do-content-wrapper">';
          echo '<ul class="to-do-list-wrap">'; 
          ?>
                <?php
                // loop through the rows of data
                while ( have_rows('acf_to_do_repeater_group') ) : the_row();
                     // display a sub field value
                     $content = get_sub_field('to-do-repeater-subfield'); 

                     echo '<li>' . $content . '</li>';  
                endwhile;

           echo '</ul></div></div>';         
       endif;
    $output = ob_get_clean();
    return $output;
} 

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

В настоящее время, даже если строки пусты, все равно отображается список.

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 30 января 2020

Добавьте счетчик к функции имущих строк: если по какой-либо причине он возвращает пустой набор по 0, вы можете увеличить счетчик до 1.


if( have_rows('acf_to_do_repeater_group') && count(have_rows('acf_to_do_repeater_group')) > 0):
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...