如何在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(); ?>      <h5><a href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h5>  <?php the_excerpt(); ?>    <?php endwhile; ?>    <?php wp_reset_postdata(); ?>  <?php else:  ?>    <p><?php _e( "Sorry, no posts matched your criteria." ); ?></p>  <?php endif;  }  

在上面的示例代码中,我们首先找到了当前的周和年。然后我们在WP_Query中使用这些值来显示当前周的帖子。现在您需要做的就是添加&lt;?php wpb_this_week();?&gt; 在您要显示帖子的主题文件中。

这很简单,不是吗?现在要显示上周的帖子,你需要做的就是从周的值减去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(); ?>      <h5><a href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h5>  <?php the_excerpt(); ?>    <?php endwhile; ?>    <?php wp_reset_postdata(); ?>  <?php else:  ?>    <p><?php _e( "Sorry, no posts matched your criteria." ); ?></p>  <?php endif;    }  

在上面的示例代码中,我们放置了两个检查。当前一周的值为1时,第一次检查将上周的值设置为52(这是一年中的最后一周)。第二次检查将上一年的值设置为去年的值,即上一年的值为52.

要显示上周的帖子,您需要做的就是添加&lt;?php wpb_last_week_posts();?&gt; 到你想要显示它们的主题模板文件。或者,如果您想要一个短代码,以便将其添加到页面或窗口小部件中,那么只需在上面给出的代码下面添加这一行。

  add_shortcode("lastweek", "wpb_last_week_posts");  

您现在可以在帖子,页面或小部件中使用此短代码:

[lastweek]

请注意,您并不总是需要WP_Query来创建自定义查询。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(); ?>      <h5><a href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h5>  <?php the_excerpt(); ?>    <?php endwhile; ?>    <?php wp_reset_postdata(); ?>  <?php else:  ?>    <p><?php _e( "Sorry, no posts matched your criteria." ); ?></p>  <?php endif;  }  

在上面的示例代码中,我们首先找到了当前的周和年。然后我们在WP_Query中使用这些值来显示当前周的帖子。现在您需要做的就是添加&lt;?php wpb_this_week();?&gt; 在您要显示帖子的主题文件中。

这很简单,不是吗?现在要显示上周的帖子,你需要做的就是从周的值减去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(); ?>      <h5><a href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h5>  <?php the_excerpt(); ?>    <?php endwhile; ?>    <?php wp_reset_postdata(); ?>  <?php else:  ?>    <p><?php _e( "Sorry, no posts matched your criteria." ); ?></p>  <?php endif;    }  

在上面的示例代码中,我们放置了两个检查。当前一周的值为1时,第一次检查将上周的值设置为52(这是一年中的最后一周)。第二次检查将上一年的值设置为去年的值,即上一年的值为52.

要显示上周的帖子,您需要做的就是添加&lt;?php wpb_last_week_posts();?&gt; 到你想要显示它们的主题模板文件。或者,如果您想要一个短代码,以便将其添加到页面或窗口小部件中,那么只需在上面给出的代码下面添加这一行。

  add_shortcode("lastweek", "wpb_last_week_posts");  

您现在可以在帖子,页面或小部件中使用此短代码:

[lastweek]

请注意,您并不总是需要WP_Query来创建自定义查询。WordPress附带了一些功能,可以帮助您显示最近的帖子,档案,评论等。如果有一种更简单的方法来使用现有的功能,那么您根本不需要编写自己的查询。

相关推荐

发表回复

房先生
我们将24小时内回复。
2024-04-23 14:26:42
您好,有任何疑问请与我们联系!
您的工单我们已经收到,我们将会尽快跟您联系!
[QQ客服]
2781198
加我微信
[电话联系]
13585372227
[电子邮件]
[email protected]
取消

选择聊天工具: