it-swarm.com.de

So erhalten Sie einen Post- oder Seitenauszug mit post_excerpt

Ich benutze die folgende foreach Schleife:

$pages = get_pages(array ('post_type' => 'page','sort_column' => 'menu_order',));
   foreach ($pages as $page) {
     $apage = $page->post_name;
     if ( $apage =='about') { 
            echo apply_filters('the_content', $page->post_content)
        } // if about page
   } // foreach

Ich möchte in der Lage sein, den Auszug der Seite oder des Beitrags anstelle des gesamten Inhalts zu erhalten, indem ich benutze

 $post->post_excerpt

Ist das möglich?

3
cmsdeployed

EDIT

Scheint, dass ich dich einigermaßen missverstanden habe. Ich denke, Sie vermissen den Punkt des post_excerpt.

Wenn Sie einen neuen Beitrag oder eine neue Seite erstellen (AFAIK auch für Seiten), haben Sie die Möglichkeit, einen manuellen Auszug in der Auszugs-Meta-Box zu erstellen (um ihn verfügbar zu machen, aktivieren Sie ihn einfach in der Dropdown-Liste Bildschirmoptionen beim Hinzufügen/Bearbeiten Beitrag/Seite Bildschirm). Dieser manuelle Auszug (oder benutzerdefinierter Auszug ), den Sie in dieses Meta-Feld eingeben, wird unter post_excerpt gespeichert, den Sie dann mit $post->post_excerpt abrufen können. Wenn diese Meta-Box leer ist, dh wenn Sie keinen manuellen Auszug angegeben haben, wird nichts zurückgegeben

Es funktioniert nicht wie das Template-Tag the_excerpt(), das einen Auszug im Handumdrehen erstellt, indem der Inhalt zum Erstellen eines Auszugs verwendet wird, der auf Seiten übrigens nicht funktioniert.

Bitte überprüfen Sie WP_Post

post_excerpt

zeichenfolge

Benutzerdefinierter Post-Auszug

EDIT 2

Wenn die Meta-Box für den manuellen Auszug nicht angezeigt wird, können Sie sie einfach mit dem folgenden Code aktivieren

add_action( 'init', 'add_excerpts_to_pages' );
function add_excerpts_to_pages() {
     add_post_type_support( 'page', 'excerpt' );
}

URSPRÜNGLICHE ANTWORT

Ihre Verwendung von get_pages hier ist hier falsch. get_pages ist nicht für diese Verwendung vorgesehen.

Sie sollten eine benutzerdefinierte Abfrage mit get_posts oder WP_Query verwenden.

Sie können so etwas tun, um Ihre Seiten und Auszüge anzuzeigen

<?php

// The Query
$the_query = new WP_Query('post_type=page' );

// The Loop
if ( $the_query->have_posts() ) {
  while ( $the_query->have_posts() ) {
    $the_query->the_post();
       the_title();
       the_excerpt();
    }
  } else {
  // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
4
Pieter Goosen
$query = new WP_Query( 'pagename=about' ); 

// The Loop
while ( $query->have_posts() ) {
    $query->the_post(); ?>
    <header class="entry-header">
        <h2 class="entry-title">
            <?php the_title(); ?>
        </h2>
    </header>
    <div class="entry-summary">
        <?php the_excerpt(); ?>
    </div>
    <?php }
    wp_reset_postdata(); ?>

Am Ende habe ich den obigen Code verwendet. Ich werde mit mehreren Abfragen anstelle von foreach Schleife gehen müssen. Ich möchte immer noch wissen, wie ich mit der von mir eingereichten foreach-Schleife einen Auszug bekomme.

0
cmsdeployed

Wenn Sie diesen Code in die Datei functions.php einfügen, werden Auszüge in Pages unterstützt

<?php
    add_action('init', 'my_custom_init');
    function my_custom_init() {
        add_post_type_support( 'page', 'excerpt' );
    }
?>

Verwenden Sie diese Option, um den Auszug anzuzeigen.

 $pages = get_pages(array ('post_type' => 'page','sort_column' => 'menu_order'));
   foreach ($pages as $page) {
     $apage = $page->post_name;
     if ( $apage =='about') { 
            echo apply_filters('the_excerpt', $page->post_content);
        } // if about page
   } // foreach
0
Hassan Alvi