Câmpuri personalizate avansate - preluarea datelor de pe altă pagină

10 sept. 2013, 19:11:25
Vizualizări: 13.6K
Voturi: 0

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; ?>
0
Toate răspunsurile la întrebare 1
2

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;
10 sept. 2013 19:37:25
Comentarii

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

adam adam
15 sept. 2013 18:56:17

vezi editarea de mai sus.

Milo Milo
15 sept. 2013 19:08:50