Câmpuri personalizate avansate - preluarea datelor de pe altă pagină
Salut, folosesc Advanced Custom Fields și încerc să prelucrez date din mai multe pagini pentru a le afișa pe altă pagină.
Am configurat un câmp de relație numit "data", iar pe pagina X unde ar trebui să apară câmpul de relație am selectat pagina Y de la care vreau să preiau datele.
<?php if( get_field('data') ): ?>
<?php the_field('special_offer'); ?> <!--// preiau conținutul de la pagina Y -->
<?php endif; ?>
Nu reușesc să fac asta să funcționeze și presupun că codul de mai sus este greșit. Știe cineva cum aș putea realiza acest lucru?
Sper că am explicat clar situația.
Mulțumesc,
<?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; ?>

Câmpul de relație returnează un array de obiecte post. Fiecare obiect post conține ID-ul postului asociat. Funcțiile de câmp ACF acceptă un al doilea parametru, care este ID-ul postului de la care doriți să preluați date, dacă nu este postul curent.
if( $related_pages = get_field( 'data' ) ):
foreach( $related_pages as $page ):
the_field( 'special_offer', $page->ID );
endforeach;
endif;
Toate acestea sunt preluate din documentația ACF, care este destul de completă și conține multe exemple.
EDIT
Dacă doriți să utilizați etichete de șablon care necesită variabila globală $post
, trebuie să utilizați setup_postdata() pentru a o popula cu datele postului. Rețineți că get_the_excerpt
nu acceptă un ID de post ca get_the_title
.
if( $related_pages = get_field( 'data' ) ):
foreach( $related_pages as $post ): // trebuie să utilizați $post pentru a funcționa
setup_postdata( $post );
the_title();
the_excerpt();
endforeach;
wp_reset_postdata(); // restabilește variabila globală $post pentru bucla exterioară
endif;

Scuze pentru răspunsul întârziat și mulțumesc mult pentru răspuns!
Din nu știu ce motiv, get_the_excerpt sau content returnează doar conținutul de pe pagina curentă, nu cred că știi ce ar putea cauza asta sau dacă fac ceva greșit? (Am actualizat OP-ul)
Destul de ciudat, obține titlul corect dar nu și conținutul :S
