ACF - Как не показывать данные, если поле пустое - PullRequest
0 голосов
/ 03 июля 2018

это мой код (он немного грязный, извините, я все еще новичок). Я использую ACF (в WordPress), и я пытаюсь отобразить определенные данные для определенных вошедших в систему пользователей (например: у user1 есть таблица, заполненная другими данными по сравнению с user2). Если user1 имеет пустое состояние - таблица не должна отображаться. Вот почему я проверяю подполе «первый». Если он не пустой, покажите все следующие данные, которые поступают из кода. Что я делаю неправильно? Может быть, я путаю смешивание PHP с HTML, я не знаю. Я впервые столкнулся с ACF и PHP.

Я благодарен за любую помощь. Заранее спасибо.

<?php 
$first = get_sub_field( 'first' );

if( ! empty( $first ) ) : ?>
    <h4>My heading</h4>
    <div class="table-responsive">
        <table class="table table-bordered">
            <thead>
                <tr>
                    <th>First</th>
                    <th>Second</th>
                </tr>
            </thead>
            <tbody>
                <?php
                if( have_rows( 'web_design_development', "$loggeduser" ) ):
                    while ( have_rows( 'web_design_development', "$loggeduser" ) ) : the_row(); ?>
                        <tr> 
                            <?php
                            $first = get_sub_field('first'); 
                            $second = get_sub_field('second');                                               
                            ?>
                            <td><?php echo $first; ?></td>
                            <td><?php echo $second; ?></td>            
                        </tr>
                    <?php endwhile; ?>
                <?php endif; ?> 
            </tbody>
        </table>
    </div>
<?php endif; ?>

1 Ответ

0 голосов
/ 03 июля 2018

Чтобы проверить, является ли подполе ACF пустым, используйте get_sub_field в сочетании с оператором if.

Вы должны использовать следующее:

if ( get_sub_field( 'first' ) :
     echo '<td>' . get_sub_field( 'first') . '</td>';
endif;

Чтобы проверить , если не установлено , используйте if ( ! get_sub_field( 'first' ) : (обратите внимание на !).

...