Проблемы с областью расширенных пользовательских полей с помощью Roots Sage 9 - PullRequest
0 голосов
/ 04 февраля 2020

Я использую Roots Sage 9 внутри WordPress и использую контроллер FrontPage.php, в котором уже определено protected $acf = true;, который работает нормально, он выводит то, что я ожидаю, по большей части.

В моей конфигурации ACF для главной страницы у меня есть поле отношения (portfolio_items), которое перетаскивает сообщения из пользовательского типа сообщения, называемого portfolio, и внутри здесь есть ряд дополнительных полей ACF.

Теперь у меня проблема в том, что я могу только вообразить, что-то вроде сферы действия ACF. Для вещей, определенных в полях ACF на первой странице, все protected $acf работает нормально, но в моем foreach я пытаюсь получить доступ к полям ACF, определенным в пользовательском типе записи, и просто не могу их вывести, чтобы поместить информацию. Например, у меня есть текстовое поле, определенное как «заголовок архива», и я обычно выводил бы его с the_field('archive_title'), но, поскольку я пытаюсь использовать контроллеры, я пытался использовать его как $archive_title без удачи, я просто получите «Примечание: неопределенная переменная: archive_title»

Вот полный код, который я использую в минуту:

    <?php global $post ?>
    @foreach($portfolio_items as $post)
        @php(setup_postdata($post))
        @php($thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), "xlarge" ))
        @php($thumbnail_image = $thumbnail[0])
        <a href="{{ the_permalink() }}" class="col-md-3 direction-reveal__card">
            <img src="{{ $thumbnail_image }}" alt="Image" class="direction-reveal__img">
            <div class="direction-reveal__overlay direction-reveal__anim--enter">
                <h3 class="direction-reveal__title mt-auto">{{ $archive_title }}</h3>
            </div>
        </a>                
    @endforeach
    <?php wp_reset_postdata();  ?>

I не могу придумать, как правильно получить доступ к другим полям. Кто-нибудь вообще сталкивался с этим?

1 Ответ

0 голосов
/ 19 марта 2020

Если я хорошо понимаю, я могу предложить это, вам следует переименовать локальную переменную $ post из своего foreach во что-то другое, например $ current_post, и если вы хотите вызвать любое поле, связанное с внешним сообщением, за пределами вашего l oop вы можете передать идентификатор записи в функцию get_field (), например: get_field ('external_post_field', $ post_id);

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...