@xonar
А смысл?

Почему код не отрабатывает из-за кода сверху?

Здравствуйте.

В вёрстке вывел содержимое поста, всё отлично вывелось. Дальше снизу вывожу кастомное поле из вордпресс и оно не выводится. Ошибок никаких не выдаёт, но если пытаюсь вывести до кода с выводом поста, то кастомное поле выводится.

Это вывод поста.
<?php 
    $post = get_post(34);
    $postreliz = $post->post_content;

    echo $postreliz;
?>


А вот снизу идёт вывод кастомного поля

<?php the_field('important__title') ?>
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
А так?
<?php 
    $post = get_post(34);
    $postreliz = $post->post_content;

    echo $postreliz;
    wp_reset_query();

    the_field('important__title');
?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
<?php the_field('important__title', $post->ID); ?>

Функция the_field() принимает 2 параметра - название поля и ID объекта, которому это поле принадлежит (выборка значения из БД происходит по этим 2м параметрам). Если второй параметр не указать, то ACF попытается использовать ID глобального $post. И если делать это в рамках стандартного цикла WordPress Loop, то это всегда будет работать как положено, отсюда привычка вызывать the_field() без второго параметра. Но у вас нету глобального цикла, соответственно глобальная $post - скорее всего вообще пуста. Поэтому вам нужно принудительно передать ID нужно поста, в данном случае - 34, если поле принадлежит записи которую вы получали выше. Если же должно принадлежать глобальной записи - не используйте переменную $post.
Ответ написан
Ваш ответ на вопрос

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

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