WordPress 博客实现历史上的今天小插件源码

今天群里一位大佬说 WordPress 历史上的今天插件作者撂挑子不干了,让我接盘,我一听,接盘这种事还是不干得好。更何况对方又不漂亮(不难),奈何那位大佬貌似很需要这个东西,仔细想想这个功能对内链的优化还是相当不错的,不过只适合上年龄的站点。再然后我就现场给他写了个插件。想起明天还没发布的内容,再然后就有了这篇文章。文章部分内容是直接摘取的网友分享的代码,说我抄袭也好,随便啦。我是搞不懂那些明明有现成的东西,非要自己挨着写的人,简直闲的蛋疼,失言勿怪,下面分享制作过程。

 

 

今天群里一位大佬说 WordPress 历史上的今天插件作者撂挑子不干了,让我接盘,我一听,接盘这种事还是不干得好。更何况对方又不漂亮(不难),奈何那位大佬貌似很需要这个东西,仔细想想这个功能对内链的优化还是相当不错的,不过只适合上年龄的站点。再然后我就现场给他写了个插件。想起明天还没发布的内容,再然后就有了这篇文章。文章部分内容是直接摘取的网友分享的代码,说我抄袭也好,随便啦。我是搞不懂那些明明有现成的东西,非要自己挨着写的人,简直闲的蛋疼,失言勿怪,下面分享制作过程。

 

 

WordPress 博客实现历史上的今天小插件源码

 

其实插件和 functions.php 文件差不多,把插件内容复制到 functions.php 中也是可以的,当然除了插件的特定函数外。下面一起来制作这个 WordPress 博客历史上的今天小插件吧!

 

 

 

在 WordPress 插件文件夹下新建一个文件夹,里面用来存储我们的插件代码文件。

新建一个插件代码文件我这里就用 ls.php 为例,然后再像其中写入插件信息。

PHP

 

1

/** * @package his * @version 1.0 */ /* Plugin Name: wordpress历史上的今天 Plugin URI: https://www.daimadog.com Description: 自动为WordPress文章末尾加上该站历史上的今天内容。 Author: daimadog Version: 1.0 Author URI: https://www.daimadog.com */

然后就是取得历史上的今天发布的文章内容了。

PHP

 

1

function wp_today($limit){ 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,post_author 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 “.$limit; $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; $user=get_user_by(‘ID’,$post->post_author); $h_post .= “<li><strong>”.$h_year.”年:</strong><a href='”.$h_permalink.”‘ title='”.$h_post_title.”‘ target=’_blank’>|《”.$h_post_title.”》-“.$user->nickname.”(“.$h_comments.”)</a></li>”; } } if ( $h_post ){ $result = “<h2>历史上的今天:</h2><ol>”.$h_post.”</ol>”; } return $result; }

上面使用了一个变量来控制每次输出多少条内容,所以我们需要写个后台。这里由于篇幅问题,就不一一贴代码了。最后就是在输出文章的时候在文章内容后面追加上这个历史上的今天的内容。

PHP

 

1

function wp_today_auto($content){ if( is_single() ){ $content = $content.wp_today(esc_attr(get_option(‘wzsl’))); } return $content; } add_filter(‘the_content’, ‘wp_today_auto’,9999);

 

代码很简单,一看就明白,这些代码,除了插件信息那段外,复制在你的 functions.php 文件中也是一切 OK 的,但是要记住将传递的数量限制参数改为固定值!