web-dev-qa-db-ger.com

Anzeige der letzten Post-Auszüge auf der statischen Titelseite

Ich versuche, eine statische Startseite mit den neuesten Beiträgen unten anzuzeigen. Insbesondere möchte ich nur einen Auszug aus den letzten Beiträgen anzeigen, der von the_content() zurückgegeben würde, wenn ich eine dynamische Startseite hätte. Was ich bisher geschafft habe, ist die Anzeige der Titelseite mit den letzten Beiträgen, aber es wird der gesamte Inhalt der Beiträge angezeigt, nicht nur der Auszug. Ich möchte keine eigenen Auszüge erzeugen, weil ich möchte, dass sie mit den Auszügen übereinstimmen, die auf den Kategorien- und Archivseiten angezeigt werden.

Dies ist (eine vereinfachte Version von) meiner front-page.php Datei im Moment:

<?php get_header(); ?>
<?php the_post(); ?>

<!-- This block is modified slightly from page.php -->
<a href="<?php bloginfo('url'); ?>">Home</a> &gt; <?php the_title(); ?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>

<div id="recent_posts">
<h2>Latest entries</h2>
<?php
$recent_posts_query = new WP_Query(array('post_type' => 'post', 'posts_per_page' => 5));

while ($recent_posts_query->have_posts())
{
$recent_posts_query->the_post();
?>
<div class="post">
<h3><?php echo the_title(); ?></h3>
<p>by <?php the_author(); ?></p>
<?php the_content(); ?>
</div>
<?php
}
?>
</div>

<?php get_footer(); ?>

Wie kann ich the_content() dazu bringen, nur den Auszug zurückzugeben? (Die meisten meiner Posts enthalten ein <!--more-->-Tag und diejenigen, die nicht vollständig angezeigt werden sollen, da es sich um kurze Posts handelt.)

BEARBEITEN: Es wurde versucht, the_excerpt() zu verwenden, aber es wird ein automatisch generierter Auszug zurückgegeben, selbst wenn der Beitrag ein <!--more--> -Tag enthält.

1
Micheal Johnson

Ich habe die Lösung gefunden. Laut https://codex.wordpress.org/Function_Reference/the_content#Overriding_Archive.2FSingle_Page_Behavior muss man hinzufügen

global $more;
$more = 0;

vor dem Aufruf von the_content(). So, jetzt lautet meine innere Schleife:

<?php
$recent_posts_query = new WP_Query(array('post_type' => 'post', 'posts_per_page' => 5));

while ($recent_posts_query->have_posts())
{
$recent_posts_query->the_post();
?>
<div class="post">
<h3><?php echo the_title(); ?></h3>
<p>by <?php the_author(); ?></p>
<?php
global $more;
$more = 0;
the_content();
?>
</div>
<?php
}
?>
1
Micheal Johnson