2016-06-09 3 views
5

Ich habe zwei Seiten, eine Titelseite und eine "grundlegende Inhaltsseite" erstellt.
Auf dieser "Basic Content Page" habe ich einen flexiblen Inhalt mit unterschiedlichen Texten und Bildern erstellt.

Ich suche nach einer Möglichkeit, die letzte Reihe auf der Titelseite anzuzeigen, ist es möglich?letzte Zeile von einem flexiblen ACF-Inhalt abrufen und auf einer anderen Seite anzeigen

UPDATE: Hier ist der letzte Code, es kann den Inhalt von einer anderen Seite mit "Post-Objekt-Feld" (namens "relation") dank @Nick Surmanidze greifen. Bleibt nur die Frage, wie man die letzte Reihe ergreift.

<?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: Um Ihnen das Verständnis helfen: Hier wird die Reihe der anderen Seite ist, dass ich durch 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; 

       ?> 

Antwort

4

$ denke ich packte ich Sie eine benutzerdefinierte hinzufügen müssten Feld zur Startseite. Es kann ein "Post/Seite" -Feld sein (erinnere dich nicht, wie genau es heißt). Die Idee besteht darin, auf der Startseite anzugeben, mit welcher Seiten-ID die letzte Zeile des Repeaters oder des flexiblen Inhaltsfelds abgerufen werden soll.

  1. Fügen Sie ein benutzerdefiniertes Feld hinzu, um die Seiten-ID auf der Startseite anzugeben.

  2. Jetzt auf Startseite Vorlage müssen Sie etwas wie schreiben: $ otherPageId = get_field ('your_other_page_id');

  3. Dann können Sie die gleiche Sache laufen, wie Sie in Ihrem Code haben, aber in

    have_rows ('selection')

Funktion hinzufügen zweiten Parameter

have_rows('selection', $otherPageId) 

um um anzugeben, auf welcher Seite Sie dieses Feld durchsuchen werden.

  1. Für die letzte Zeile können Sie viele Möglichkeiten nutzen. Die eine wäre, Zeileninhalt zu Array zuweisen und dann letztes Element eines Arrays verwenden oder hier ist ein weiteres Snippet, das Ihnen eine Idee geben kann, wie es geht in ACF Weise:

$ Repeater = Get_Field (‚Repeater‘);

$ last_row = Ende ($ Repeater);

echo $ last_row ['sub_field'];

+0

Sprechen Sie über das Feld "Beziehung"? https://www.advancedcustomfields.com/resources/relationship/ – Yagayente

+0

Ich sprach tatsächlich über Post-Objekt-Feld https://www.advancedcustomfields.com/resources/post-object/, aus dem Sie die ID abrufen können oder es sein kann einfach ein Eingabefeld und Sie können eine ID eingeben. Oder Sie können es komplett überspringen und haben die ID der "anderen Seite" in die Homepagevorlage in diese Funktion wie diese have_rows ('selection', 99) eingegeben - vorausgesetzt, dass 99 die ID der anderen Seite ist. –

+0

Okay danke. Aber wenn ich die exakt gleiche Zeile des Inhalts kopiere und einfüge und >> have_rows ('selection') >> have_rows ('selection, 8') ändere, scheint es noch nicht zu funktionieren. – Yagayente