Не удается получить ACF из пользовательского сообщения - PullRequest
0 голосов
/ 25 марта 2019

У меня есть пользовательский тип записи, который называется "members", к которому подключено поле 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');
}

`

Ответы [ 3 ]

0 голосов
/ 25 марта 2019

Я думаю, что это может быть цикл foreach с использованием переменной $post. Это заменит основную переменную $post страницы, и любые вызовы функций get_field после цикла foreach будут искать неправильный пост.

Попробуйте переименовать эти переменные во что-то отличное от $post

0 голосов
/ 25 марта 2019

Вы пытались использовать WP_Query для получения доступа к post_id?

$args = array(
'post_type'   => 'members',
'post_status' => 'publish',
'posts_per_page' => -1,
'order' => 'ASC',
'orderby' => 'title'
);

$query = new WP_Query( $args );

if( $query->have_posts() ) :
  while( $query->have_posts() ) :
    $current_post->the_post();
    $post_id = get_the_ID();
    $featured = esc_html(get_post_meta($post_id, 'featured_member', true));
endwhile;

wp_reset_postdata();

else :
    esc_html_e( 'no members found', 'text-domain' );
endif;
0 голосов
/ 25 марта 2019

Попробуйте передать 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);
}
...