2016-06-09 12 views
5

Ho creato due pagine, una prima pagina e una "pagina di contenuto di base".
In questa "pagina di contenuto di base", ho realizzato un contenuto flessibile con testo e immagini diversi.

Si cerca un modo per visualizzare la riga ultima nella prima pagina, è possibile?ottiene l'ultima riga da un contenuto flessibile ACF e lo visualizza su un'altra pagina

AGGIORNAMENTO: questo è l'ultimo codice, può prelevare il contenuto da un'altra pagina utilizzando "campo oggetto post" (denominato "relazione") grazie a @Nick Surmanidze. Rimane solo la questione su come afferrare l'ultima riga.

<?php 
$post_object = get_field('relation'); 

if($post_object): 
// override $post 
$post = $post_object; 
setup_postdata($post); 
?> 
     <div> 
       <?php 
// check if the flexible content field has rows of data 

if(have_rows('selection')): 
// loop through the rows of data 
while (have_rows('selection')) : 
the_row(); 

if(get_row_layout() == 'selectionselection'): 
?> 
          <div class="titre-soustitre"> 
           <div class="menu-content" data-id="id-<?php the_sub_field('id'); ?>"> 
            <p class="demo bis"><span class="sub">&nbsp;</span></p> 
            <a href="#" class="expander"><h1><p class="demo title"><?php the_sub_field('title'); ?></p></h1></a>    
            <p class="demo bis"><span class="sub"><?php the_sub_field('subhead'); ?></span></p> 
           </div> 
          </div> 
       <?php 
endif; 
endwhile; else : 
// no layouts found 
endif; 
?> 
     </div> 
     <?php wp_reset_postdata();// IMPORTANT - reset the $post object so the rest of the page works correctly ?> 
     <?php endif; ?> 

UPDATE 2: Al fine di aiutare a comprendere: Ecco la ROW dell'altra pagina, che sto afferrando attraverso $ post_object

   <?php 
       // check if the flexible content field has rows of data 
       if(have_rows('selection')): 
       // loop through the rows of data 
       while (have_rows('selection')) : the_row(); 
       if(get_row_layout() == 'selectionselection'):?> 





          <div class="titre-soustitre"> 


           <div class="menu-content" data-id="id-<?php the_sub_field('id');?>"> 


            <p class="demo bis"><span class="sub">&nbsp;</span></p> 
            <a href="#" class="expander"><h1><p class="demo title"><?php the_sub_field('title');?></p></h1></a>    
            <p class="demo bis"><span class="sub"><?php the_sub_field('subhead');?></span></p> 





           </div> 

          </div> 





       <?php endif; 
       endwhile; 
       else : 
       // no layouts found 
       endif; 

       ?> 

risposta

4

penso che avrebbe bisogno di aggiungere un personalizzato campo alla pagina iniziale. Può essere un campo "post/pagina" (non ricordare come viene chiamato esattamente). L'idea è quella di indicare sulla home page back-end su quale ID della pagina stai per ottenere l'ultima riga di ripetitore o campo di contenuto flessibile.

  1. Aggiungere un campo personalizzato per indicare l'ID della pagina sulla home page.

  2. Ora sul modello di pagina iniziale è necessario scrivere qualcosa come: $ otherPageId = get_field ('your_other_page_id');

  3. Quindi è possibile eseguire la stessa cosa che avete nel vostro codice, ma in

    have_rows ('selezione')

funzione aggiungere secondo parametro

have_rows('selection', $otherPageId) 

al fine per indicare su quale pagina andrai a cercare questo campo.

  1. Per ottenere l'ultima riga è possibile utilizzare molti modi. Uno potrebbe essere quello di assegnare il contenuto riga per matrice e quindi utilizzare ultimo elemento di un array o qui è un altro frammento che si può dare un'idea di come farlo in modo ACF:

$ ripetitore = get_field ('ripetitore');

$ last_row = fine ($ ripetitore);

echo $ last_row ['sub_field'];

+0

stai parlando del campo "Relazione"? https://www.advancedcustomfields.com/resources/relationship/ – Yagayente

+0

In realtà stavo parlando di campo post oggetto https://www.advancedcustomfields.com/resources/post-object/ da cui è possibile recuperare l'id o può essere semplicemente un campo di input e puoi inserire un id. Oppure puoi saltarlo completamente e inserire l'id di "l'altra pagina" nel modello della pagina iniziale in questa funzione come this have_rows ('selection', 99) - assumendo che 99 sia l'id dell'altra pagina. –

+0

Ok, grazie. Ma se copio e incolli la stessa riga di contenuto e cambi >> have_rows ('selection') >> have_rows ('selection, 8'), sembra che non funzioni ancora. – Yagayente