如何在WordPress中显示上周的帖子
许多初学者很快就开始修改他们的WordPress主题,因此我们为他们准备了一份WordPress主题作弊表以帮助他们入门。这给新用户带来了一些有趣的挑战。其中一个读者最近问我们如何在WordPress中显示上周的帖子。他们只是想在主页上添加一个显示上周帖子的部分。在本文中,我们将向您展示如何在WordPress中显示上周的帖子。
显示本周帖子
在展示如何显示上周的帖子之前,让我们先看看如何使用WP_Query
显示本周的帖子。将以下代码复制并粘贴到您主题的functions.php
文件或特定插件中。
function wpb_this_week() {
$week = date('W');
$year = date('Y');
$the_query = new WP_Query( 'year=' . $year . '&w=' . $week );
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<a href="" title="Permanent link to ">
<?php endif;
}
在上面的代码示例中,我们首先找出了当前的周和年份。然后我们使用这些值在WP_Query
中显示本周的帖子。现在,您只需将添加到您希望显示帖子的主题文件中即可。
显示上周帖子
这很简单,对吗?现在,要显示上周的帖子,您只需要从当前周的值中减去1。但是,如果这是今年的第一周,那么您将得到周为0和年份为当前年的结果,而不是上一年。以下是如何解决此问题的代码。
function wpb_last_week_posts() {
$thisweek = date('W');
if ($thisweek != 1) :
$lastweek = $thisweek - 1;
else :
$lastweek = 52;
endif;
$year = date('Y');
if ($lastweek != 52) :
$year = date('Y');
else:
$year = date('Y') -1;
endif;
$the_query = new WP_Query( 'year=' . $year . '&w=' . $lastweek );
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<a href="" title="Permanent link to ">
<?php endif;
}
在上面的代码示例中,我们进行了两个检查。第一个检查将上周的值设置为52(即一年中的最后一周),当当前周的值为1时。第二个检查将年的值设置为上一年,当上周的值为52时。
要显示上周的帖子,您只需将添加到您希望显示它们的主题模板文件中。或者,如果您希望拥有一个短代码,以便您可以将其添加到页面或小部件中,只需在上面的代码下面添加这一行即可。
add_shortcode('lastweek', 'wpb_last_week_posts');
现在,您可以在帖子、页面或小部件中使用此短代码,如下所示:
[lastweek]
请注意,您并不总是需要WP_Query
来创建自定义查询。WordPress自带一些函数,帮助显示最新帖子、归档、评论等。如果有更简单的方法使用现有函数,那么您就不需要自己编写查询了。
我们希望这篇文章能帮助您在WordPress中显示上周的帖子。试验一下代码并根据您的需要进行修改。如果您有任何问题,请在下方留言或加入我们的Twitter。