• 注册
  • 个人说明:TA有点懒了,什么都没有写。
    关注 1 粉丝 0 喜欢 0 内容 256
    河南省·郑州市
    聊天 送礼

    新版界面开发进度

    14%
    其实就是啥也没写,只有想法,哈哈
    • 回帖总排行
    • 采纳总排行

    分享精彩给好友

    全部文章 关注:0 内容:1074

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

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

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

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

      • 在WordPress插件文件夹下新建一个文件夹,里面用来存储我们的插件代码文件。
      • 新建一个插件代码文件我这里就用ls.php为例,然后再像其中写入插件信息。
        /**
        
        * @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
        
        */
      • 然后就是取得历史上的今天发布的文章内容了。
        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;
        }
      • 上面使用了一个变量来控制每次输出多少条内容,所以我们需要写个后台。这里由于篇幅问题,就不一一贴代码了。最后就是在输出文章的时候在文章内容后面追加上这个历史上的今天的内容。
        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的,但是要记住将传递的数量限制参数改为固定值!

      你需要登录,才能进行发帖操作