Letzte Zeile aus einem flexiblen ACF-Inhalt abrufen und auf einer anderen Seite anzeigen

Lesezeit: 4 Minuten

Benutzer-Avatar
Yagayente

Ich habe zwei Seiten erstellt, eine Titelseite und eine “Grundlegende Inhaltsseite”.
Auf dieser “Basisinhaltsseite” habe ich einen flexiblen Inhalt mit verschiedenen Texten und Bildern erstellt.

Ich suche nach einer Möglichkeit, die anzuzeigen letzte Reihe auf der Titelseite, ist das möglich?

UPDATE: Hier ist der letzte Code, der dank @Nick Surmanidze den Inhalt von einer anderen Seite mit “Post-Objektfeld” (mit dem Namen “Relation”) abrufen kann. Bleibt nur noch 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 beim Verständnis zu helfen: Hier ist die ZEILE der anderen Seite, die ich durch $post_object ergreife

                <?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;

                ?>

Benutzer-Avatar
Nick Surmanidze

Ich denke, Sie müssten der Startseite ein benutzerdefiniertes Feld hinzufügen. Es kann ein “Post / Page”-Feld sein (weiß nicht mehr, wie es genau heißt). Die Idee ist, im Backend der Startseite anzugeben, von welcher Seiten-ID Sie die letzte Zeile des Repeaters oder flexiblen Inhaltsfelds erhalten.

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

  2. Jetzt müssen Sie auf der Startseitenvorlage etwas schreiben wie: $otherPageId = get_field(‘your_other_page_id’);

  3. Dann können Sie dasselbe wie in Ihrem Code ausführen, aber in

    have_rows(‘Auswahl’)

Funktion zweiten Parameter hinzufügen

 have_rows('selection', $otherPageId)

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

  1. Um die letzte Zeile zu erhalten, können Sie viele Möglichkeiten nutzen. Eine wäre, dem Array Zeileninhalt zuzuweisen und dann das letzte Element eines Arrays zu verwenden, oder hier ist ein weiterer Ausschnitt, der Ihnen eine Vorstellung davon geben kann, wie Sie dies auf ACF-Weise tun können:

$repeater = get_field(‘repeater’);

$last_row = end($repeater);

echo $last_row[‘sub_field’];

  • Meinst du das Feld “Beziehung”? advancedcustomfields.com/resources/relationship

    – Yagayente

    11. Juni 2016 um 14:19 Uhr

  • Ich habe eigentlich über das Post-Objektfeld gesprochen advancedcustomfields.com/resources/post-object aus dem Sie die ID abrufen können, oder es kann einfach ein Eingabefeld sein, in das Sie eine ID eingeben können. Oder Sie können es komplett überspringen und die ID von “der anderen Seite” in die Homepage-Vorlage in diese Funktion wie diese have_rows(‘selection’, 99) codieren – vorausgesetzt, dass 99 die ID der anderen Seite ist.

    – Nick Surmanidze

    11. Juni 2016 um 14:24 Uhr

  • Okay, danke. Aber wenn ich genau dieselbe Inhaltszeile kopiere und einfüge und >> have_rows(‘selection’) >> have_rows(‘selection, 8’) ändere, scheint es noch nicht zu funktionieren.

    – Yagayente

    11. Juni 2016 um 14:36 ​​Uhr

  • have_rows(“Auswahl”, 9); achte auf Argumente. Die erste ist eine Zeichenfolge in Anführungszeichen und die zweite ist nur eine Zahl ohne Anführungszeichen

    – Nick Surmanidze

    11. Juni 2016 um 14:40 Uhr

  • Ok, es stellt sich heraus, dass ich das Feld “Post / Seite” verwende, wie Sie es zuerst vorgeschlagen haben, und es hat funktioniert! Jetzt muss ich nur noch sehen, wie Sie “Zeileninhalt dem Array zuweisen”, wie Sie gesagt haben, um die letzte Zeile zu erhalten. Irgendeine Idee, wie ich das machen könnte?

    – Yagayente

    11. Juni 2016 um 14:57 Uhr

1370140cookie-checkLetzte Zeile aus einem flexiblen ACF-Inhalt abrufen und auf einer anderen Seite anzeigen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy