@Alexa_KyKi

Как сделать проверку заполненности поля ACF в template-parts на WordPress?

У меня есть записи, у каждой записи есть поле добавленное через acf. Блок с этими записями дублируется на многих страницах сайта. В блоке выводится: тайтл записи, миниатюра и то самое поле выведенное через acf. Мне нужно выводить в этот блок только те записи у которых поле acf заполнено. Работает все кроме этой самой проверки на заполненное поле acf, не могу понять в чем проблема.

Сам код который в файле в template-parts:
<div class="feedbacks-slider">
        <?php if( !is_page_template('page-indianwedding.php') ) : ?>
            <?php $var = get_field('story_review_text', $query->ID);
                var_dump($var); ?>
                <?php if(isset($var)) : ?>
                    <?php
                        $query_args = array(
                            'category__in' => 5
                        );
                        $query = new WP_Query($query_args);
                        if( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?>
                            <div class="feedbacks-slide">
                                <div class="decor mb-60">
                                    <div class="decor__row">
                                        <span class="decor__line decor__line--left"></span>
                                        <div class="decor__photo">
                                            <?php echo get_the_post_thumbnail( $query->ID, 'full'); ?>
                                        </div>
                                        <span class="decor__line decor__line--right"></span>
                                    </div>
                                </div>
                                <div class="feedbacks-slide__content text-sub mb-60  text-center"><?php echo $var; ?></div>
                                <p class="feedbacks-slide__name text-h3 feedbacks-arrow text-center">
                                    <button type="button" class="feedbacks-slider__arrow feedbacks-slider__arrow--prev" ></button>
                                    <span>-<?php the_title(); ?>-</span>
                                    <button type="button" class="feedbacks-slider__arrow feedbacks-slider__arrow--next" ></button>
                                </p>
                            </div>
                            <!-- /.feedbacks-slide -->
                    <?php endwhile; endif; ?>
                <?php endif; ?>
        <?php endif; ?>
    </div>


Данный код выводит нормально посты только в файле index.php, на остальных страницах get_field возвращает null
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
@IvanMogilev
Backend developer: Wordpress,Yii
У вас не много не правильный подход, вы проверяете поле у поста до цикла постов,у acf есть возможность фильтровать записи,добавьте в $query_args
'meta_key' => 'story_review_text',
    'meta_value' => array(''),
    'meta_compare' => 'NOT IN'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы