如何为WordPress文章添加历史上的今天列表
最近浏览其他博客站点,看到很多朋友的网站上面侧边栏都有加上历史上的今天列表,能更好地展示一些没有更新的老文章,又可以提升页面的权重,那么我们应该如何在文章页面下添加一个“历史上的今天”功能获取老文章列表予以展示呢?下面就来教大家制作方法。
该功能代码取至柳城大佬的 wp-today 插件,具体实现方法将以下代码添加到function.php文件末尾即可。
//历史上的今天,代码来自柳城博主的 WP-Today 插件 function wp_today(){ global $wpdb; $post_year = get_the_time('Y'); $post_month = get_the_time('m'); $post_day = get_the_time('j'); $sql = "select ID, year(post_date_gmt) as h_year, post_title, comment_count FROM $wpdb->posts WHERE post_password = '' AND post_type = 'post' AND post_status = 'publish' AND year(post_date_gmt)!='$post_year' AND month(post_date_gmt)='$post_month' AND day(post_date_gmt)='$post_day' order by post_date_gmt DESC limit 5"; $histtory_post = $wpdb->get_results($sql); if( $histtory_post ){ foreach( $histtory_post as $post ){ $h_year = $post->h_year; $h_post_title = $post->post_title; $h_permalink = get_permalink( $post->ID ); $h_comments = $post->comment_count; $h_post .= "<li><strong>$h_year:</strong> <a href='".$h_permalink."' title='".$h_post_title."' target='_blank' rel="noopener">$h_post_title($h_comments)</a></li>"; } } if ( $h_post ){ $result = "<h2>历史上的今天:</h2><ul>".$h_post."</ul>"; } return $result; } function wp_today_auto($content){ if( is_single() ){ $content = $content.wp_today(); } return $content; } add_filter('the_content', 'wp_today_auto',9999);
上述代码默认是在文章结尾自动添加。
如果需要自定义显示位置,则只需去掉上述代码的以下部分。
function wp_today_auto($content){ if( is_single() ){ $content = $content.wp_today(); } return $content; } add_filter('the_content', 'wp_today_auto',9999);
然后在需要显示的位置用下面函数调用即可。
<?php echo wp_today(); ?>
样式文件的话没有调整,大家根据自己喜好自行调整一下吧。