@mvr1976
Учу html, css, js

Как выводить разные значения одного произвольного поля в записях?

Добрый вечер!
Есть записи, отображаются с помощью шаблона single, в них должны быть разные номера телефона, которые пользователь мог бы менять в произвольном поле в админке.
Вывод я сделал, но не уверен, что правильно:
<span>
<?php $myID = get_queried_object_id(); echo get_post_meta( $myID, 'contact-phone', true ); ?>
</span>

Может быть есть какой-то более прямой способ, может быть это вообще надо делать через виджет?
  • Вопрос задан
  • 113 просмотров
Пригласить эксперта
Ответы на вопрос 2
Punkie
@Punkie
advanced custom fields попробуйте
Ответ написан
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Во-первых, можно сократить и упростить код:
<span>
    <?php echo get_post_meta( get_queried_object_id(), 'contact-phone', true ); ?>
</span>

Во-первых, get_queried_object_id() обращается к уже находящимся в runtime cache данным, соответственно, нет необходимости создавать еще одну переменную и тратить память.
Во-вторых, это и есть короткий самый прямой способ - конкретное получение одного значения мета-поля для одного конкретного поста.

Далее, совет Роман Краббз в общем-то правильный. Если работаете с метаданными в количестве более пары штук и вам могут понадобиться произвольные поля разных типов (файл, визуальный редактор и тд) - берите ACF. Что касается вашего другого вопроса, где у вас не выводилось поле - это потому что у вас там цикла (WordPress Loop) не было, соответственно не было глобального $post_id, который является вторым, опциональным аргументом функции get_gield(). Если нету глобального $post_id, его можно передать принудительно - кстати, через тот же get_queried_object_id().
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы