ACF Post Object внутри страницы параметров не возвращается, когда в функции в Genesis - PullRequest
0 голосов
/ 18 февраля 2020

У меня установлен объект Post на странице настроек. Но когда я пытаюсь получить post_field для объекта post и отобразить его через функцию в функциях. php, это не работает. Он просто возвращается пустым. Он прекрасно работает, когда я добавляю тот же код вне функции в теме TwentyTwenty по умолчанию.

Вот код для отношения:

add_action('genesis_after_homebottom_widget_area', 'add_food_festivals');

function add_food_festivals() {
$posts = get_field('food_festival_post', 'option');
        if( $posts ): ?>
            <?php foreach( $posts as $p ): // variable must NOT be called $post (IMPORTANT) ?>
                <section id="featured-post-6" class="widget featured-content featuredpost">
                <div class="widget-wrap">
                    <h4 class="widget-title widgettitle">Food Festivals</h4>
                    <article class="post-1050 post type-post status-publish format-standard has-post-thumbnail category-food-festivals entry">
                        <a href="<?php echo get_the_permalink($p->ID);?>" title="Oak Street Po-Boy Festival, New Orleans, LA" class="alignnone">
                            <?php $image = get_field('food_festival_image', 'option');
                            if( !empty( $image ) ): ?>
                                <img src="<?php echo esc_url($image['url']); ?>" alt="<?php echo esc_attr($image['alt']); ?>" />
                            <?php endif; ?>
                        </a>
                        <header class="entry-header">
                            <h2 class="entry-title">
                                <a href="<?php echo get_the_permalink($p->ID);?>"><?php the_title($p->ID);?></a>
                            </h2>
                        </header>
                    </article>
                    <p class="more-from-category"><a href="https://sunsetandsewanee.com/category/food-festivals/" title="Food Festivals">More Food Festivals ></a></p>
                </div>
            </section>
            <?php endforeach; ?>
        <?php endif; ?>
}

А также пробовал с объектом post:

add_action('genesis_after_home-bottom_widget_area', 'add_food_festivals');

function add_food_festivals() {
$post_object = get_field('food_festival_post', 'option');

        if( $post_object ): 

            // override $post
            $post = $post_object;

            setup_postdata( $post ); 

            ?>
            <section id="featured-post-6" class="widget featured-content featuredpost">
                <div class="widget-wrap">
                    <h4 class="widget-title widgettitle">Food Festivals</h4>
                    <article class="post-1050 post type-post status-publish format-standard has-post-thumbnail category-food-festivals entry">
                        <a href="<?php echo get_the_permalink();?>" title="Oak Street Po-Boy Festival, New Orleans, LA" class="alignnone">
                            <?php $image = get_field('food_festival_image', 'option');
                            if( !empty( $image ) ): ?>
                                <img src="<?php echo esc_url($image['url']); ?>" alt="<?php echo esc_attr($image['alt']); ?>" />
                            <?php endif; ?>
                        </a>
                        <header class="entry-header">
                            <h2 class="entry-title">
                                <a href="<?php echo get_the_permalink();?>"><?php the_title();?></a>
                            </h2>
                        </header>
                    </article>
                    <p class="more-from-category"><a href="https://sunsetandsewanee.com/category/food-festivals/" title="Food Festivals">More Food Festivals ></a></p>
                </div>
            </section>
            <?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?>
        <?php endif; ?>
 }

Я пробовал несколько решений, включая добавление $global post; в начало функции. Очевидные части были проверены (Имя поля установлено правильно в ACF. Поле установлено как возвращаемое как Post Object и т. Д. c).

Если я запускаю var_dump в поле get_field, они возвращают пустое массив. array(0) { }

...