很多朋友都喜欢在网站上调用某段时间的文章,今天来分享一下 WordPress 调用本周和上周文章的方法。
获取本周文章
我们先来认识一下通过 WP_Query 调用本周文章的方法,将下面的代码添加到主题的 functions.php 文件:
/**
* 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 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 来查询本周的文章,然后你就可以模板文件中使用一下代码调用:
<?php wpdx_this_week_posts(); ?>
或者在文章或页面中使用下面的简码调用:
[thisweek]
是不是很简单?
获取上周文章
按照这个思路,我们可以将获取的周数减一,就可以获取上周文章了,但如果是一年的第一周,周数就会返回 0,而且年份是今年,不是去年了。下面的代码已经修复了这个问题:
/**
* 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 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,就可以在模板文件使用下面的代码调用上周的文章:
<?php wpb_last_week_posts(); ?>
或者在文章或页面使用下面的简码:
[lastweek]
参考资料:http://www.wpbeginner.com/wp-tutorials/how-to-display-last-weeks-posts-in-wordpress/
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。