WP_Query в wordpress и включить ACF в результаты - PullRequest
1 голос
/ 18 июня 2020

Я пытаюсь получить все сообщения из настраиваемого типа сообщений в Wordpress и также включаю расширенные настраиваемые поля (ACF) в результаты, чтобы сгенерировать файл JSON с данными.

$query = new WP_Query(array(
  'post_type' => 'resources',
  'post_status' => 'publish',
  'posts_per_page' => -1,
));

echo "var json=". json_encode($query->get_posts());

При использовании простого WP_Query данные ACF не включаются, и мне приходится перебирать результаты и извлекать все ACF вручную один за другим. Есть ли способ включить их в исходные результаты WP_Query?

Ответы [ 3 ]

1 голос
/ 18 июня 2020

Это был бы мой способ сделать это.

Pu sh все, что вы хотите, в массив и закодируйте его.

<?php 
$array = array();

$args = array (
            'post_type'              => 'resources',
            'post_status'            => array( 'publish' ),
            'nopaging'               => true,
            'posts_per_page'         => '-1',
            'order'                  => 'ASC',
            'orderby'                => 'ID',
            
        );
$queryResults = new WP_Query( $args );

if ( $queryResults->have_posts() ) {
        $counter = 0;
        while ( $queryResults->have_posts() ) {
            $queryResults->the_post();
            $array[$counter]['ID']=get_the_ID();
            $array[$counter]['name']=get_the_title();
            $array[$counter]['thumbnailURL'] = get_the_post_thumbnail_url();
            $array[$counter]['place'] = get_field('resource_location');
            //etc etc etc
            
            $counter++;
        }
        
        $jasoned = json_encode( $array, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES );
        echo $jasoned;
} else {
 //nothing found
}
wp_reset_postdata();
?>
0 голосов
/ 18 июня 2020

Вы можете использовать get_fields(), чтобы сразу получить все поля acf, зарегистрированные в сообщении. Посмотрите документацию здесь .

0 голосов
/ 18 июня 2020

Чтобы добавить данные ACF в запрос. WP_Query не поможет.

WP_Query не возвращает значения из любых настраиваемых полей. Чтобы получить их, вы должны l oop через сообщения и получить значения полей.

Обратитесь к этой документации: https://www.advancedcustomfields.com/resources/query-posts-custom-fields/

...