跳到主要内容

您要在一页上显示所有WordPress帖子吗?最近,我们的一位读者希望创建一个存档页面,并在单个页面上显示所有WordPress帖子。在本文中,我们将向您展示如何在一个页面上不分页显示所有WordPress帖子。

为什么以及何时在一页上显示所有帖子?

WordPress带有针对每个类别,标签,作者和日期的内置存档页面。

但是,许多网站所有者更喜欢为其网站创建自定义存档页面。存档页面通常会突出显示其热门帖子,显示基于日期的紧凑型存档,列表类别或显示标签云等。以WPBeginner的存档页面为例。

一些博客更愿意在一页上显示所有WordPress帖子标题的列表。

如何在一页上显示所有wordpress帖子
如何在一页上显示所有wordpress帖子

在一页上显示所有WordPress帖子

有许多种方法可以在单个页面上显示所有WordPress帖子。您可以使用短代码在页面上显示帖子,可以使用插件在页面上显示帖子,最后可以使用自定义模板和循环在页面上显示所有帖子。

我们将以最适合初学者的方法开始介绍所有三种方法。

方法1:使用显示帖子简码插件

您需要做的第一件事是安装并激活Display Posts Shortcode插件。有关更多详细信息,请参阅有关如何安装WordPress插件的分步指南。

该插件可以直接使用,没有可供您配置的设置。

继续创建一个新页面,并将其称为“存档”或任何其他标题。之后,您需要在页面中粘贴以下短代码。

[display-posts posts_per_page="1000" order="DESC"]

该短代码将仅按时间顺序显示所有帖子标题的列表。设置为每页最多显示1000个帖子。

如果您有一千多个帖子,则可以更改。您也可以将发布顺序更改为ASC,这将按相反的时间顺序显示发布(先显示旧发布)。

虽然您可以使用显示帖子短代码来显示摘录,缩略图和其他相关信息,但我们不建议您这样做。当您在一个页面上列出所有帖子时,此页面会很长,并且您想确保它既简单又快速。仅显示帖子标题就足够了此样式的存档页面。

如果要基于类别或其他参数在页面上显示帖子,可以按照其文档页面上的详细使用说明进行操作。

方法2:使用简单的年度存档插件

在单个页面上显示所有WordPress帖子可能会使滚动时间太长。您可以通过显示每年的列表来解决此问题。然后,用户可以单击年份以展开它并查看该年发布的帖子。

您需要做的第一件事是安装并激活Simple Yearly Archive插件。

激活后,您需要转到设置»简单年度存档页面以配置插件设置。

该插件可让您以多种方式显示帖子列表。您可以在指向年度存档的链接下显示所有内容,也可以在可折叠的年份下显示它们。

如果要在可折叠年份下显示它们,则需要在“之前/之后(年份标题)”选项旁边添加<div>和</ div>。

其余的插件选项很不言自明。您可以根据需要进行设置。

不要忘记单击“保存更改”按钮来存储您的设置。

现在要在页面上显示所有帖子,您只需要在[SimpleYearlyArchive]您选择的页面上添加简码即可。

该插件提供了可以与短代码一起使用的一系列参数。您可以在插件的文档页面上查看参数。

方法3:使用模板代码在一页中显示所有WordPress帖子

虽然使用插件在一个页面中显示所有帖子是最简单的方法,但有些人可能想学习如何使用页面模板代码来实现。

首先,您将需要创建一个自定义页面模板,并从page.php文件中复制样式。

之后,您将使用下面的循环在一页中显示所有帖子。

<?php 
// the query
$wpb_all_query = new WP_Query(array('post_type'=>'post', 'post_status'=>'publish', 'posts_per_page'=>-1)); ?>

<?php if ( $wpb_all_query->have_posts() ) : ?>

<ul>

	<!-- the loop -->
	<?php while ( $wpb_all_query->have_posts() ) : $wpb_all_query->the_post(); ?>
		<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
	<?php endwhile; ?>
	<!-- end of the loop -->

</ul>

	<?php wp_reset_postdata(); ?>

<?php else : ?>
	<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>

如果上述代码说明没有意义,我们建议您使用方法1。

回到顶部