在静态首页上显示最近的帖子摘录

时间:2016-01-19 作者:Micheal Johnson

我试图显示一个静态的首页,在底部显示最近的帖子。具体来说,我只想显示最近帖子的一段摘录,如下所示the_content() 如果我有一个动态的头版。到目前为止,我所做的是在头版显示最近的帖子,但它显示的是帖子的完整内容,而不仅仅是摘录。我不想生成自己的摘录,因为我希望它们与类别和归档页面上显示的摘录保持一致。

这是我的(简化版)front-page.php 当前文件:

<?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(); ?>
我怎样才能the_content() 只返回摘录?(我的大多数帖子都有<!--more--> 标记它们,以及那些我不想完整显示的内容,因为它们是短文。)

编辑:尝试使用the_excerpt() 但即使帖子包含<!--more--> 标签

1 个回复
最合适的回答,由SO网友:Micheal Johnson 整理而成

我找到了解决办法。根据https://codex.wordpress.org/Function_Reference/the_content#Overriding_Archive.2FSingle_Page_Behavior, 必须添加

global $more;
$more = 0;
在调用之前the_content(). 现在我的内部循环显示:

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

相关推荐

Ordering terms whilst in loop

我有一个页面模板,显示所有;“发布”;在两个自定义分类中,帖子显示在一个表中$type = $_GET[\'type\']; $category = $_GET[\'category\']; args = array( \'post-type\' => \'literature\', \'posts_per_page\' => -1, \'tax_query\' => array(