WordPress 调用本周和上周的文章

我做不到很坚强,但起码要让自己不再懦弱!人生最大的错误,是用健康换取身外之物,人生最大的悲哀,是用生命换取个人的烦恼,人生最大的浪费,是用生命解决自己制造的麻烦!

很多朋友都喜欢在网站上调用某段时间的文章,今天来分享一下 WordPress 调用本周和上周文章的方法。

获取本周文章

我们先来认识一下通过 WP_Query 调用本周文章的方法,将下面的代码添加到主题的 functions.php 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
 * WordPress 调用本周的文章
 * https://www.wpdaxue.com/display-last-weeks-posts-in-wordpress.html
 */
function wpdx_this_week_posts() { 
	$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(); ?>
	<h2><a rel="nofollow noopener noreferrer" href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h2>
	<?php the_excerpt(); ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else:  ?>
	<p><?php _e( '抱歉,没有找到符合条件的文章' ); ?></p>
<?php endif;
}
// 添加简码
add_shortcode('thisweek', 'wpdx_this_week_posts');

/** * WordPress 调用本周的文章 * https://www.wpdaxue.com/display-last-weeks-posts-in-wordpress.html */ function wpdx_this_week_posts() { $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(); ?> <h2><a rel="nofollow noopener noreferrer" href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h2> <?php the_excerpt(); ?> <?php endwhile; ?> <?php wp_reset_postdata(); ?> <?php else: ?> <p><?php _e( '抱歉,没有找到符合条件的文章' ); ?></p> <?php endif; } // 添加简码 add_shortcode('thisweek', 'wpdx_this_week_posts');

在上面的代码中,我们先获取当前年份和本周,然后使用 WP_Query 来查询本周的文章,然后你就可以模板文件中使用一下代码调用:

1
<?php wpdx_this_week_posts(); ?>

<?php wpdx_this_week_posts(); ?>

或者在文章或页面中使用下面的简码调用:

[thisweek]

是不是很简单?

获取上周文章

按照这个思路,我们可以将获取的周数减一,就可以获取上周文章了,但如果是一年的第一周,周数就会返回 0,而且年份是今年,不是去年了。下面的代码已经修复了这个问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/**
 * WordPress 调用上周的文章
 * https://www.wpdaxue.com/display-last-weeks-posts-in-wordpress.html
 */
function wpdx_last_week_posts() { 
	$thisweek = date('W'); //获取本周数
	if ($thisweek != 1) { //如果本周不是第一周,减 1 就是上周
		$lastweek = $thisweek - 1; 
	}else{ // 如果本周是第一周,上周就是去年的 52 周
		$lastweek = 52;
	}
	$year = date('Y'); // 获取当前年份
	if ($lastweek != 52) { // 如果本周不是一年最后一周(52周),年份就是今年
		$year = date('Y');
	}else{ // 如果是最后一周,年份减 1 就是去年
		$year = date('Y') -1; 
	}
	$the_query = new WP_Query( 'year=' . $year . '&w=' . $lastweek );
	if ( $the_query->have_posts() ) : 
		while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
	<h2><a rel="nofollow noopener noreferrer" href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h2>
	<?php the_excerpt(); ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else:  ?>
	<p><?php _e( '抱歉,没有找到符合条件的文章' ); ?></p>
<?php endif;
}
// 添加简码
add_shortcode('lastweek', 'wpdx_last_week_posts');

/** * WordPress 调用上周的文章 * https://www.wpdaxue.com/display-last-weeks-posts-in-wordpress.html */ function wpdx_last_week_posts() { $thisweek = date('W'); //获取本周数 if ($thisweek != 1) { //如果本周不是第一周,减 1 就是上周 $lastweek = $thisweek - 1; }else{ // 如果本周是第一周,上周就是去年的 52 周 $lastweek = 52; } $year = date('Y'); // 获取当前年份 if ($lastweek != 52) { // 如果本周不是一年最后一周(52周),年份就是今年 $year = date('Y'); }else{ // 如果是最后一周,年份减 1 就是去年 $year = date('Y') -1; } $the_query = new WP_Query( 'year=' . $year . '&w=' . $lastweek ); if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <h2><a rel="nofollow noopener noreferrer" href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h2> <?php the_excerpt(); ?> <?php endwhile; ?> <?php wp_reset_postdata(); ?> <?php else: ?> <p><?php _e( '抱歉,没有找到符合条件的文章' ); ?></p> <?php endif; } // 添加简码 add_shortcode('lastweek', 'wpdx_last_week_posts');

上面的代码注释中已经有解释,大家自己看一下就明白了。

将上面代码添加到当前主题的 functions.php,就可以在模板文件使用下面的代码调用上周的文章:

1
<?php wpb_last_week_posts(); ?>

<?php wpb_last_week_posts(); ?>

或者在文章或页面使用下面的简码:

[lastweek]

参考资料:http://www.wpbeginner.com/wp-tutorials/how-to-display-last-weeks-posts-in-wordpress/

到此这篇关于WordPress 调用本周和上周的文章就介绍到这了。点燃了的火炬不是为了火炬本身,就像我们的美德应该超过自己照亮别人。更多相关WordPress 调用本周和上周的文章内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
WordPress站点Gravatar头像前后台不显示的如何解决办法

WordPress主题需要支持https吗?WordPress站点如何如何实现https?

WordPress站点的页面/标签/分类URL地址如何添加.html?

WordPress站点更换了域名后数据库应该如何操作替换新旧域名?

WordPress安装在主机空间的什么目录里面?根目录在哪里?