Advanced custom fields - extrayendo datos de otra página
Hola, estoy usando Advanced Custom Fields y estoy intentando extraer datos de múltiples páginas para mostrarlos en otra.
Configuré un campo de relación llamado "data", y luego en la página X donde se muestra el campo de relación, seleccioné la página Y de donde quiero extraer los datos.
<?php if( get_field('data') ): ?>
<?php the_field('special_offer'); ?> <!--// obtener contenido de la página Y -->
<?php endif; ?>
No puedo hacer que esto funcione y supongo que lo anterior está mal, ¿alguien sabe cómo podría hacerlo por favor?
Espero haberlo explicado claramente.
Saludos
<?php if( $related_pages = get_field( 'special_offer_relationship' ) ): ?>
<?php foreach( $related_pages as $page ): ?>
<?php echo get_the_title( $page->ID ); ?>
<?php echo get_the_excerpt( $page->ID ); ?>
<?php endforeach; ?>
<?php endif; ?>

El campo de relación devuelve un array de objetos de post. Cada objeto de post contiene el ID del post relacionado. Las funciones de campo de ACF aceptan un segundo parámetro, que es el ID del post del cual deseas recuperar datos, si no es el post actual.
if( $related_pages = get_field( 'data' ) ):
foreach( $related_pages as $page ):
the_field( 'special_offer', $page->ID );
endforeach;
endif;
Todo esto está en la documentación de ACF, que es bastante exhaustiva con muchos ejemplos.
EDITAR
Si deseas usar etiquetas de plantilla que requieren la variable global $post
, debes usar setup_postdata() para poblarla con los datos del post. Ten en cuenta que get_the_excerpt
no acepta un ID de post como lo hace get_the_title
.
if( $related_pages = get_field( 'data' ) ):
foreach( $related_pages as $post ): // debes usar $post para que funcione
setup_postdata( $post );
the_title();
the_excerpt();
endforeach;
wp_reset_postdata(); // restaura la variable global $post para el bucle exterior
endif;

Disculpa la demora en responder y ¡muchas gracias por tu respuesta!
Por alguna razón, get_the_excerpt o el contenido solo está obteniendo el contenido de la página en la que estás. ¿No tendrás idea de qué podría estar causando esto o si estoy haciendo algo mal? (He actualizado el OP)
Curiosamente, obtiene el título correctamente pero no el contenido :S
