#php #wordpress #advanced-custom-fields
#php #wordpress #расширенные пользовательские поля
Вопрос:
У меня есть пользовательский тип записи под названием «участники», к которому подключено поле ACF. Я пытаюсь получить содержимое этого поля. Но когда я пытаюсь, я получаю только обычный объект post. Поля ACF не подключены.
Вот что я пытаюсь, но получаю только объект post.
`
$featuredmembers = get_field('featured_member');
global $post;
//$featuredmembers has a field named "featured". That's the field I want.
$posts = get_posts([
'post_type' => 'members',
'post_status' => 'publish',
'posts_per_page' => -1,
'order' => 'ASC',
'orderby' => 'title'
]);
foreach ($featuredmembers as $post) {
print_r($post['featured']->ID);
echo get_field('featured');
}
`
Ответ №1:
Я думаю, что это может быть связано с foreach
циклами, использующими переменную $post
. Это переопределит основную $post
переменную страницы, и любые get_field
вызовы функций после цикла foreach будут просматривать неправильный post.
Попробуйте переименовать эти переменные во что-то другое, чем $post
Ответ №2:
Попробуйте передать post id
в вызове get_field / the_field в цикле foreach:
foreach ($featuredmembers as $post) {
// the_field('featured', $post->ID);
echo get_field('featured', $post->ID);
}
Если это поле повторителя, вы можете использовать:
foreach ($featuredmembers as $post) {
the_repeater_field('featured', $post->ID);
}
Комментарии:
1. Привет! Я действительно пробовал это, поскольку именно так я обычно это делаю. Но это не сработает. Я ничего не получаю. Это поле повторителя, если это имеет смысл.
2. Вы пробовали the_repeater_field(‘featured’, $post-> ID); ?
3. Да, то же самое. Результата нет.
4. Единственное, с чем я начинаю работать, это получить post. Например:
$post['featured']
. Но я не получаю его поля ACF.5. О, куда вы вызываете get_post? возможно, вы уже находитесь внутри wp_query. Если это так, попробуйте вызвать его после запроса