彻底告别辣鸡评论 – 从根源做起的屏蔽大法

关于为什么我特么又拖了那么久神马的我就不说了,对,懒得说。直接进入正题。

前几篇里面wu1yi2fan提到自己新开的VPS被垃圾评论机器扫描到了,从此wu1yi2fan又过上了手动清空spam的生活,当然,这些spam都是被Akisment拦截了的。

然后针对这个现象wu1yi2fan提出了一个方案,那就是屏蔽那些发送垃圾评论的机器的IP。不记得的童鞋点一下这里:辣鸡评论别烦我 – VPS屏蔽IP大法

但是,spam机器那么多,这样子屏蔽是屏蔽不过来的,怎么办呢,在膜拜了大神bigfa以后,我找到了这个方法。

以下方法参考自bigfa大神。

你可能会说,为什么一个关于屏蔽垃圾评论的方法里面会扯到Ajax?这里,我们就要从spam机器的原理说起了。

一般的WordPress Spam机器都是通过直接向WordPress中负责处理评论的wp-comments-post.php来提交评论,如果wp-comments-post.php不能被访问或者是一个不存在/空文件,那么垃圾评论就不能被提交。

彻底告别辣鸡评论 – 从根源做起的屏蔽大法 - 勒统驿站 | LtoPro 第1张

而这样子处理的话我们就要想办法让我们网站的评论提交的时候不通过wp-comments-post.php这个文件。而实现这个效果最好的方法就是使用Ajax通过调用WordPress自带的评论函数来提交。

开始

评论提交Ajax化

这一步参考自bigfa大神的 WordPress Ajax 评论提交 https://fatesinger.com/jquery-ajax-comments.html

第一步,就是看一下自己的网站评论是不是启用了Ajax。具体验证方法就是提交一条评论,看一下提交以后需不需要重新加载页面才能看到自己的评论。

如果你的评论系统没有Ajax化,那么你需要进入这一步。

在bigfa大神的blog页面下载文件按说明修改上传文件就好啦(我就不多说了,bigfa大神已经说的够详细了)(逃

如果你的使用的主题是基于WordPress默认主题创作的,你就只需要在function.php中引用文件即可。

禁止访问wp-comments-post.php

这一步参考自bigfa大神的 WordPress 防垃圾评论 https://fatesinger.com/78305

前面说了阻止spam机器提交评论的方法有清空wp-comments-post.php,删除wp-comments-post.php,但是这两种方法在每次更新了WordPress以后都需要重新操作,因此禁止访问wp-comments-post.php成了最佳方案。

nginx

nginx的同学需要在自己网站的配置文件中,添加以下内容:

location ^~ /wp-comments-post.php
  {
     deny all;
  }

彻底告别辣鸡评论 – 从根源做起的屏蔽大法 - 勒统驿站 | LtoPro 第2张

接下来重启nginx即可。

你可以直接访问 你的网站/wp-comments-post.php 来确认这条规则是否生效。

没有屏蔽前:(某X友情出镜)

彻底告别辣鸡评论 – 从根源做起的屏蔽大法 - 勒统驿站 | LtoPro 第3张

屏蔽访问后:

彻底告别辣鸡评论 – 从根源做起的屏蔽大法 - 勒统驿站 | LtoPro 第4张

Apache

Apache的同学则需要在.htaccess文件中添加以下内容:

<Files wp-comments-post.php>
Require all denied
</Files>

(这里本来应该有截图,但是我都不用Apache了怎么给你们截图哇)

到这里 ,就结束啦XD

辣鸡评论别烦我 – VPS屏蔽IP大法

说实话,最近wu1yi2fan忙的东西挺多的,所以驿站压根就没更过东西。不过有一点很省心的就是自从我把驿站挪到VPS上以后就没有了垃圾评论。看来是因为驿站的新IP并没有被各大垃圾评论机器所扫描到。

但是,好景不长,今天早上wu1yi2fan起床的时候,发现来了五六封评论审核邮件,我顿时慌了。第一时间就跟某X吐槽了这件事(请无视这个赖床的某X)。很显然,驿站又收到了垃圾评论。

辣鸡评论别烦我 – VPS屏蔽IP大法 - 勒统驿站 | LtoPro 第1张

辣鸡评论别烦我 – VPS屏蔽IP大法 - 勒统驿站 | LtoPro 第2张

仔细观察了一下垃圾评论的发送IP,我发现来来去去就那几个IP。虽然驿站有安装Akismet插件,但是难免会出现类似于今天这种插件突然脑抽没拦截的情况,所以呢,我决定,直接屏蔽这几个IP。

辣鸡评论别烦我 – VPS屏蔽IP大法 - 勒统驿站 | LtoPro 第3张

(装了控制面板或者主机商自带的童鞋麻烦直接忽略一整篇。。。)

开始

Linux上有一个知名的防火墙,那就是iptables,我们就通过它来实现屏蔽IP。

安装iptables

首先,当然是用SSH访问自己的VPS啦。

然后,安装iptables。

yum install iptables

安装过程中,会有一个确认提示,输入Y即可继续安装。

 辣鸡评论别烦我 – VPS屏蔽IP大法 - 勒统驿站 | LtoPro 第4张

清除规则

iptables默认有一些规则,这些规则可能会影响到我们接下来的配置以及日常的使用,所以我们先清空iptables自带的规则。

iptables -F
iptables -X
iptables -Z

这三条命令输入以后是没有任何提示的哦。

屏蔽IP

正片来啦。那就是屏蔽IP。

在wu1yi2fan的垃圾评论列表里面,频繁出现的IP有……

188.143.232.27
188.143.234.155
188.143.232.32

这三位。IP地址全部来自俄罗斯……俄罗斯的童鞋什么时候靠发垃圾评论来发家致富了?

所以,我们开始屏蔽吧。

屏蔽命令如下:

iptables -I INPUT -s  188.143.232.27 -j DROP
iptables -I INPUT -s  188.143.232.32 -j DROP
iptables -I INPUT -s  188.143.234.155 -j DROP

辣鸡评论别烦我 – VPS屏蔽IP大法 - 勒统驿站 | LtoPro 第5张

当然,如果你想屏蔽IP段一劳永逸,也是可以的。比如说屏蔽188.143.232.*

iptables -I INPUT -s  188.143.232.0/24 -j DROP

如果是屏蔽188.143.*.*,命令如下

iptables -I INPUT -s  188.143.0.0/16 -j DROP

如果是屏蔽188.*.*.*,命令如下

iptables -I INPUT -s  188.0.0.0/8 -j DROP

如果是屏蔽*.*.*.*……大哥你直接让你的VPS断网就好了。

查看规则

因为输入屏蔽命令以后是不会有任何提示的,所以为了确认是否录入黑名单,我们需要查看规则。

命令如下

iptables -L -n

输入以后就可以看到我们的黑名单啦。

 辣鸡评论别烦我 – VPS屏蔽IP大法 - 勒统驿站 | LtoPro 第6张

设置iptables自启动

有时候,处于某些神奇的原因,iptables可能不会自启动,这个时候,就需要我们手动设置自启动了。命令如下

chkconfig --level 345 iptables on

输入以后没有任何提示。

至此,我们的工作就可以告一段落啦。

简单粗暴彻底无害 – WordPress闭站维护方案

看到标题你们想到了什么呢?我才不理你们呢。话说驿站关站了貌似四五天的样子,原因懒得和你们说,说了伤心简单粗暴彻底无害 – WordPress闭站维护方案 - 勒统驿站 | LtoPro 第1张

好啦,下面就直接来重点好了,那就是,如何快速的设置WordPress闭站?

大家都会有那么几天想把自己的站点给关闭掉,设置全站的404,但是,大家想到的第一反应估计都是在百度里面搜索“WordPress维护插件”,“WordPress关站插件”等东西吧。其实呢,wu1yi2fan有一套更加简单的方法可以解决这个问题!不需要安装任何的插件,甚至不用写代码,30秒钟就可以完成的神奇方法,你值得拥有!更重要的是,根本不会影响大家正常的访问后台哦。

开始
原理

其实呢,WordPress前端页面都是通过一个文件进行处理的,由这个文件负责获取所有的数据并显示出来,没错,这个文件我想大家都清楚,那就是……index.php!

所以呢,我们只需要把这个文件给重命名,就可以直接让所有的前端页面404Error!

行动
全站404走起

没错,我们直接进入FTP,然后把WordPress根目录下的index.php命名为任意其他名字即可。

简单粗暴彻底无害 – WordPress闭站维护方案 - 勒统驿站 | LtoPro 第2张

友好的公告

但是,这只能让所有人访问网站的时候收到404 Error。如果说我要在首页挂一个公告该怎么办呢?简单。新建一个文件,名字为index.htm,然后把下面的代码复制进去,放在同一个目录下就可以了。

<head>
<title>Sorry</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p>公告放这里就可以了^_^</p>
</body>

注意:如果你的WordPress链接格式类似于www.ltopro.com/?p=1110 那么,在进行这一步以后所有的链接返回的都是这个公告页面。

简单粗暴彻底无害 – WordPress闭站维护方案 - 勒统驿站 | LtoPro 第3张

不如来个公益页面?

好啦,单纯的404页面是不是有点乏味?那么我们就来一个公益页面吧。没错,404公益!

打开http://www.qq.com/404/ 就可以直接获取由腾讯和宝贝回家一起提供的404公益页面,在404页面里面展示失踪儿童的消息。驿站很早之前就在做这个了只不过换主题以后懒得把代码重新插回主题里面。

出来的效果大概是这个样子的。(请无视标题的乱码……忘记申明编码了)

 简单粗暴彻底无害 – WordPress闭站维护方案 - 勒统驿站 | LtoPro 第4张

当然,贴心的wu1yi2fan提供了一个小工具,帮助大家生成404公益页面。戳我访问

注意:这里的404页面不是指WordPress主题的404.php,而是主机设置里面的404页面。cPenal面板的童鞋可以在“错误页面” – “404”里面进行设置。

好啦,这样子,一个友好的闭站方案就完成了。看,我还是可以正常的访问后台呢。接下来,向百度提交闭站申请以后就放心的去折腾吧~

简单粗暴彻底无害 – WordPress闭站维护方案 - 勒统驿站 | LtoPro 第5张

CMS,你离我们不遥远 – 小工具变身CMS板块

驿站一周年啦,wu1yi2fan就这样子跌跌撞撞的把驿站运营了一周年!这是个值得庆祝的日子!所以呢,我决定,要给大家一个惊喜!让我们给自己的WordPress添加CMS模块吧!咳咳,标题防偷窥,链接防偷窥!……糟糕,RSS放不了偷窥……算了,不理这些,下面,我们开始废话!

某X一直说wu1yi2fan在抄袭他的定位,额,我去,驿站的定位是什么?自己的捣鼓经历啊亲。好吧,出现这种话的话,那就说明,wu1yi2fan又要来介绍插件了!没错,很多强迫症站长都讨厌至极的插件!(没办法,wu1yi2fan没那么牛X。)

虽然不知道这个插件具体有什么用,不过,根据插件主页所说,这是一个页面生成器。额,听到这里不少人应该明白了。换句话,这是一个帮助我们利用侧边栏的小工具制作页面的插件。(貌似有点矛盾?)

你可能还在纠结这个到底有什么实际意义,简单,那就是,让你的非CMS主题做出CMS主题的效果!如果早点wu1yi2fan能够发现这个插件,wu1yi2fan就不用如此蛋疼的用国外的主题了!(我特么正在找一个合适的国内主题,然后用这个插件改造改造。)

 没错!页面生成器这种东西是国外CMS主题的标配,驿站的首页就是用主题自带的页面生成器生成的。看,这就是驿站主题自带的页面生成器~

CMS,你离我们不遥远 – 小工具变身CMS板块 - 勒统驿站 | LtoPro 第1张

现在,你不用换成国外的主题就可以享受这种只有国外的收费主题和部分免费主题才能够享受的待遇哦亲,只需要安装一个插件而已哦亲。虽然双十一过了但是我们还是提供这个待遇哦亲。(怎么变成淘宝呛了= =)心动不如行动!现在。就让我们有请这个神奇的插件登场吧!

插件介绍

名字:Page Builder by SiteOrigin

插件主页:https://wordpress.org/plugins/siteorigin-panels/

WordPress版本要求:3.7 +

安装方式:后台搜索安装即可= =

这个灯箱,这种风格,是不是有种某X上身的赶脚!废话!wu1yi2fan和某X用的是同一个插件来做这个灯箱!难得wu1yi2fan想正式一点呢,你们就不要纠结这么多了好么= =

废话不多说,在后台搜索下载这款插件。然后,启用。接下来,我们先进入配置页面。

配置

老规矩,没有正确的配置,插件就不能正常的工作!所以,简单说一下这款插件看起来貌似不太复杂的设置界面。

在设置里面找到这款插件,你可以看到一个神奇的设置页面接下来,请允许我简单翻译一下。

1.Post Types

这里是设定这个页面生成器在哪个类型的页面中生效。通常只用勾选页面就可以了。

2.Copy Content

将页面生成器生成的内容复制到编辑器里面。便于更好的兼容性。勾上就是启用。

3.Animations

选择是否开启小工具的动画效果。如果关闭的话,幻灯片之类的小工具无法正常使用。

4.Bundled Widgets

是否在页面生成器里面显示插件自带的小工具。这个随意,不过,自带的几个被怎么好用。

5.Responsive Layout

响应式布局。换句话。跟自适应差不多,强烈要求开启!

6.Mobile Width

设定当宽度低于多少时识别为移动设备。

7.Row Bottom Margin

这个……好吧,我不知道干什么用的。

8.Cell Side Margins

这个我也是真真不知道干什么用的啊T_T

貌似,配置页面就这么多东西了。接下来,我们就一起来看看这个页面生成器的威力吧。

驿站为了这次的测试,特地开了几个测试站点呢。哈哈。前期的准备麻烦死了,不过,总算是上线了。接下来,我们就在测试站点里面演示给大家看。

演示

注意,为了演示效果,特地把驿站的部分内容Copy到了演示站点,请大家见谅啊。

本文的演示地址,把地址栏中的www改为demo即可哦。以后所有的演示都是这个样子的。方便大家查看。

启用了以后呢,只要打开新建页面或者是新建文章的页面,就可以看到插件的赞助提示……

 CMS,你离我们不遥远 – 小工具变身CMS板块 - 勒统驿站 | LtoPro 第2张

当然,这不是重点,重点是,在原来的“可视化”,“文本”之后多了一个“Page Builder”。嗯,没错,就是这个!让我们切换到页面生成器视图吧。

 CMS,你离我们不遥远 – 小工具变身CMS板块 - 勒统驿站 | LtoPro 第3张

好了,你可以看到一个空空的界面。让我们点击左上角的加号,添加第一个模块吧!

 CMS,你离我们不遥远 – 小工具变身CMS板块 - 勒统驿站 | LtoPro 第4张

点玩+号以后,你可以看到你现在可以用的所有小工具。这里面,后面有(PB)字样的是插件自带的小工具。不过没啥子用……

CMS,你离我们不遥远 – 小工具变身CMS板块 - 勒统驿站 | LtoPro 第5张

选好了小工具,然后,你可以看到一个好大好大的配置框,但是,内容只有一点点……差评! :-x 

CMS,你离我们不遥远 – 小工具变身CMS板块 - 勒统驿站 | LtoPro 第6张

添加完成以后,你就可以看到啦。如果把鼠标移上去,你可以看到删除,修改等操作。

 CMS,你离我们不遥远 – 小工具变身CMS板块 - 勒统驿站 | LtoPro 第7张

行了,让我们继续。

 

你很快会意识到一个问题,那就是你没有足够多的挂件来达到你想要的效果,所以呢,你需要一个可以提供多种样式的挂件。那么,wu1yi2fan推荐使用终极简码。这款短代码插件提供了超过40 种短代码,其中包括了CMS主题里面常见的幻灯片模块,自定义文章列表模块,RSS模块……只要你会改CSS,那么,这两款插件在一起就可以构建出一个完美的CMS主题!至于怎么用,我就不说了。大家在插件安装页面里面搜索“ShortCodes”。第一个就是了哦。(经过多次测试,貌似幻灯片的兼容性不太好,说明一下先,在驿站这里测试是可以的,但是在几个测试站点里面都……)

当然,插件的作者也意识到了这个问题,所以,你可以在挂件列表的最下面看到按钮“Recommended Plugins and Widgets”,点击这个按钮就可以查看跟这个插件兼容性不错的小工具。不过,貌似也才几个啊……

最终,wu1yi2fan简单的做了一个,额,没有太多修改,就是这个样子啦。

 CMS,你离我们不遥远 – 小工具变身CMS板块 - 勒统驿站 | LtoPro 第8张

当然,你也可以自己去写一个小工具,用这个插件就可以轻松的构建出一个简单的CMS主题的首页了,哈哈。当然,如果要好看点,那么,你就还需要学会CSS,用CSS去定义每一个部分的样式。那么,在这里,因为一周年,所以,我们继续说下去。

深度定制

1.所有的小工具标题的元素标签都是

h3 class="widget-title"

2.每一个小工具模块的div标签格式大都是

id="pgc-$post_id-0-0"

其中的0-0是按照顺序数下去的。当然,也有固定的标识符,那就是

class="panel-grid-cell"

3.所有的CSS样式最好在插件目录siteorigin-panels/CSS/front.css中定义,否则,你懂。

最后,驿站一周年生日快乐! :twisted: 求蛋糕!

让小工具脱颖而出 – 制作独立的最近评论工具

之前,wu1yi2fan在讲如何给评论框添加表情功能的时候,讲到过怎样改造我们的最近评论小工具,但是,按照那篇教程的改法,我们需要修改WordPress的源文件,而且一旦遇上重大更新,有很大的几率会被恢复原状。万一你手贱不小心改到了其他的代码就杯具了。所以,wu1yi2fan捣鼓了一个小时后,写下了这一篇~我保证,安全0风险,而且十分简单,不简单我立马去跳楼!!!

之前wu1yi2fan说了什么?额,请看这里~

让你的评论框生动起来 – 给WordPress评论框添加表情

把最近评论独立出来,我们需要干几件事。准备好你的代码编辑器和你的主题,我们现在开始~

1.手动

这里其实很简单,直接从WordPress的源文件里面提取出来就好了,哈哈。(不信你自己按照之前的那一篇文章对照看看,除了修改一些必须修改的部分以外,全是WordPress源文件中的。)

<?php
 
/*---------------------------------------------------------------------------------*/
/* Comments widget */
/*---------------------------------------------------------------------------------*/
class Ltopro_comments extends WP_Widget_Recent_Comments {
 
    /**
     * 构造方法,主要是定义小工具的名称,介绍
     */
    function Ltopro_comments() {
        $widget_ops = array('description' => __('显示最新评论内容~勒统驿站修改'));
        parent::WP_Widget(false, ('增强版评论挂件'),$widget_ops);
    }
 
    /**
     * 小工具的渲染方法,这里就是输出评论
     */
    function widget( $args, $instance ) {
        global $comments, $comment;

        $cache = wp_cache_get('widget_recent_comments', 'widget');

        if ( ! is_array( $cache ) )
            $cache = array();

        if ( ! isset( $args['widget_id'] ) )
            $args['widget_id'] = $this->id;

        if ( isset( $cache[ $args['widget_id'] ] ) ) {
            echo $cache[ $args['widget_id'] ];
            return;
        }
 
        extract($args, EXTR_SKIP);
         $output = '';
        $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Recent Comments' ) : $instance['title'], $instance, $this->id_base );

        if ( empty( $instance['number'] ) || ! $number = absint( $instance['number'] ) )
             $number = 5;
        
        $comments = get_comments( apply_filters( 'widget_comments_args', array( 'number' => $number, 'status' => 'approve', 'post_status' => 'publish' , 'user_id' => 0) ) );//“'user_id' => 0”用来去除管理员的后台评论(回复)
        $output .= $before_widget;
        if ( $title )
            $output .= $before_title . $title . $after_title;

        $output .= '<ul id="recentcomments">';
        if ( $comments ) {
            foreach ( (array) $comments as $comment) {
                $output .=  '<li class="recentcomments" style="overflow: hidden;"><span class="avatar_40" style="float: left; margin-right: 15px;">'.get_avatar($comment, 40).'</span>' . //.get_avatar($comment, 40). 是为了显示头像,40表示头像大小为40*40
                /* translators: comments widget: 1: comment author, 2: post link */ 
                sprintf(_x('%1$s 在 《%2$s》 里面吐槽道:</br>', 'widgets'), get_comment_author_link(), '<a href="' . esc_url(
                get_comment_link($comment->comment_ID) ) . '" rel="nofollow">' . get_the_title($comment->comment_post_ID) . '</a>') . '' . convert_smilies(strip_tags( $comment->comment_content)) . '</li>';
            //$output=后面是显示出来的内容,自行修改~
            }
         }
        $output .= '</ul>';
        $output .= $after_widget;
 
        echo $output;
        $cache[$args['widget_id']] = $output;
        wp_cache_set('Ltopro_comments', $cache, 'widget');
    }
 
}
 
//注册小工具
register_widget('Ltopro_comments');
?>

呵呵是不是觉得好长啊?那是当然,所以,wu1yi2fan提供了已经制作完成的文件哦。使用方法就是……将这个文件放在主题目录下(记得删除后面的.txt),然后,在主题的function.php中加入以下代码:

require_once (get_template_directory() . '/widget-comments.php');

接下来,进入你主题的小工具页面,怎样,是不是看见了一个名字叫做“增强版评论挂件”的小工具呢?拖出来试试吧~

下载地址:本地下载

2.插件版

wu1yi2fan为了大家着想,想想看,前面的方法还是要修改主题文件啊,一不小心又会杯具啊,所以,wu1yi2fan把它做成了一个小插件,当然,没有上传到WordPress官网(不敢上传啊,官网的每一个插件都需要经过审核,让官网的孩纸发现我是无耻的直接修改了部分代码然后直接做成插件,非要一巴掌把我拍死不可。555……)

使用方法:上传以后启用即可。接下来,你的小工具里面就会出现这个神奇的小工具啦~

下载地址:本地下载

3.修改表情路径

这个我就无话可说了,你需要修改当初wu1yi2fan提供的smiley.php最后的那一连串的图片地址从

/wp-includes/images/smilies

改为

<?php bloginfo('template_directory'); ?>/smilies

然后,把下面这段代码加入function.php中

//表情自定义

add_filter('smilies_src','custom_smilies_src',1,10);
 function custom_smilies_src ($img_src, $img, $siteurl){
     return get_bloginfo('template_directory').'/smilies/'.$img;
 }

最后,把你的表情文件夹放入主题文件夹就大功告成啦~

评论框也要有花样 – 评论框捣鼓小记

额,特色图片是神马?wu1yi2fan会告诉你?笑话!(Wo:看领域就知道啦~)我会告诉你我去了一个神奇的地方么?嘎嘎,反正这张东东你们最迟明年就会看到了嘛……好了,言归正传!

wu1yi2fan对主题自带的评论框可是一堆一堆的的不爽啊,比如说输入的信息里面没有网址这一项神马的,根本就没办法让大家相互交流,甚至有孩纸被wu1yi2fan逼的在评论里面留了自己博客的地址,结果……给伟大的Akismet君误认为是垃圾评论,幸好wu1yi2fan没有设定垃圾评论自动删除,要不然就屎惨了……至于这位孩纸是谁呢,额,我就不说了。

所以,wu1yi2fan决定重新修理一下评论框。

1.给评论添加表情

这部分内容wu1yi2fan之前写过,是的,wu1yi2fan之前写过,详情请看……

给让你的评论框生动起来 – 给WordPress评论框添加表情

2.让网站一栏重见天日

这个其实很简单,我们只要打开主题的comments.php,找到关于姓名和邮件地址的文本框代码,并照着它们的代码写网站的就行了。

至于怎么找到嘛……以IE为例,我们使用分析元素(查看元素,检查元素)功能就可以轻松实现哦。

只要按下右键,选择查看元素,然后点击鼠标状的按钮,移到文本框上,就可以看到对应的源代码了。接下来,找到源文件,照样修改即可。比如说,驿站的是……

<div class="bg-input left"><input class="contact_input_text" type="text" onfocus="if(value==defaultValue)value=''" onblur="if(value=='')value=defaultValue" name="url" id="url" value="<?php if($req) echo _e('网站', tk_theme_name); ?>"/><div class="down-border-form left"></div></div>

这里,你要注意,重点的代码其实是……

name="url" id="url"

是的,找到类似与这样子的代码,改为url就可以了。

3.给作者名字链上他们的网站

因为没有网站这一栏,所以wu1yi2fan的主题并没有说点击作者的名字就可以看他们的网站。这行代码需要我们加上去。

还是comments.php,用查看元素找到作者名字的代码,记住前面的div代码,这个是最重要的,然后,我们到源文件里面去找。比如说驿站的主题里面,作者名字的代码是……这个

<?php echo $comment->comment_author ?>

我们需要把它修改为……

<?php echo get_comment_author_link();?>

就好啦。

额,我是不是漏掉了什么?Nofollow?WordPress现在已经自动给作者链接添加了nofollow属性,不信自己刷新以后看看。wu1yi2fan会漏掉这个么?真是的。

等等,似乎真的漏了什么?

对,没错,就是新标签(窗口)打开!

打开你主题的function.php,加上这一串代码即可。

function comment_link_nofollow($text) {
    $text = preg_replace('/<a (.+?)>/i', "<a $1 target='_blank'>", $text);
    return $text;
}
add_filter('get_comment_author_link', 'comment_link_nofollow', 6);

解释一下这段代码吧。

preg_replace('/<a (.+?)>/i', "<a $1 target='_blank'>", $text)
这部分代码的意思是,搜索含有超链接标签的代码,并在里面添加参数,在新窗口打开。

add_filter('get_comment_author_link', 'comment_link_nofollow', 6);

则是申明,作者链接使用这个方法。

好了,加上去以后,刷新试试,看,是不是已经OK了?

3.浏览器UA显示

这个,就是插件的功劳啦。当然,有些主题自带这个功能。这里,wu1yi2fan使用的是WP-UserAgent。使用方法很简单,相信你一定可以看懂,wu1yi2fan就不多说了。

好叻,现在回头看一下你的评论模块,是不是比以前好多啦?嘎嘎。

链接改版不用愁 – 固定链接重定向插件

细心的童鞋会发现,驿站的固定链接改版了。在原来的固定链接的基础上,多了一串数字。这是因为驿站要进行百度开放适配, 把这串post_id加在链接里面才好用正则表达式匹配简版页面(wap.ltopro.com)嘛。但是,随着链接改版,一件非常蛋疼的事情出现了,那就是傲娇的度娘可能会因为网站出现大量死链而做出惩罚(对于Google来说,那都不是个事儿~顶多一个星期就可以完全更新收录。这就是搜索引擎技术的差距啊!!!),额,这可怎么办捏……所以,我们要重定向我们的链接!这就是今天wu1yi2fan要说的东西啦。

在此之前,不得不感谢度娘之前推出的抓取诊断(目前已经改名),因为我们可以直接用它来检查是不是重定向成功。

好了,下面,就介绍几款插件吧。

1.简单粗暴的Deans Permalinks Migratio(WP Permalinks Migration)

这个是最简单最粗暴的了。启用以后,在设置里面有一个“WP固定链接迁移”的选项。在这里填上改版前的固定链接样式就OK啦。

注意:经测试,如果多次更改,可能会造成循环重定向的错误。如果说RP比较差,可能直接就循环重定向了。

另外,在WordPress后台以及WordPress官网是找不到这款插件的,所以,wu1yi2fan提供了下载地址

点我下载~(百度云)

2.神奇的Permalink Finder

这个就不用wu1yi2fan多作解释了吧。之前(上上篇)讲过,没错,就是那个固定链接模糊匹配。如果说你的固定链接变化不大(比如说驿站的/%postname%/到/%post_id%/%postname%/),那么,它就够了!详细介绍请看……

注意:不过……经过测试,有可能会出现……没有重定向。换句话……你输入的是错误的网址,进入的是正确的网页,但是,地址没有变。

3.高大上的Redirection

这个……好吧,我承认,我不会用正则表达式,真的,不过,做百度开放适配的时候还是要用正则表达式。没错啦,这个就是要用正则表达式的,所以,这个,大家自己看着办~(关于正则表达式……你可以看看度娘怎么说。详情请戳这里)

当然,wu1yi2fan可是很好人滴,所以直接就……

正则匹配符号(\d+)或者(\w+)表示该路径或参数。(\d+)表示纯数字字符串,(\w+)表示数字或字母组成的字符串。

比如说:驿站原来是/%postname%/,现在是/%post_id%/%postname%/,那么就应该这样子写:

以前:/(\w+)/

现在:/(\d+)/(\w+)/

然后,用${x}按顺序替换。

比如说,从现在改回以前就可以这样子填写:

/(\d+)/(\w+)/

/${2}/

怎样,懂了么= =

不过,如果你是像wu1yi2fan这样子固定链接里面还要加点东西的话……Redirection就用不上了。所以……

注意:这个只适合链接删减。

4.高效简洁的Permalink Redirect Manager

这个,就是wu1yi2fan现在在用的插件啦~是的,wu1yi2fan正在使用的插件!至于为什么简洁高效嘛……因为它比第一位仁兄多了两个功能!

而且,根本不绕弯子!

第一个框,填写不用被重定向的链接。第二个框,填写强制重定向的链接。第三个框,填写就的固定链接样式。第四个……一个RSS源提供商的地址重定向。最后一个,如果主域名不是当前WordPress地址,则重定向。

这个……貌似没发现什么问题。不

注意:如果多次保存,也有几率出现循环重定向。(要不是因为不知道怎样把第一个插件的设置重置,我绝对不会换成这一个……)

这四款插件,应该有你想要的吧。好啦,不说这么多,WordPress后台搜索不到的,wu1yi2fan都已经附上了下载地址,大家就按需使用吧~

拒绝手贱打错链接 – 开启WordPress固定链接模糊匹配

有时候大家去逛某些网站的时候,仗着自己是老访客,直接打链接,一不小心,哟,404错误了。或者别人改了链接以后你又不知道,一输入进去,额,又404了。这可是一件非常非常令人讨厌的事情。所以,wu1yi2fan今天就要教大家开启链接模糊匹配功能,自动将错误的链接重定向到正确链接!

这里,用代码实现起来比较麻烦,所以wu1yi2fan找到了一款插件可以帮助我们完成这个功能~

首先,当然是果断介绍一下这款插件。名字叫做“Permalink Finder”,翻译过来就是“固定链接寻找者”。没错,就是根据错误的固定链接找到正确的固定链接并进行重定向。下面,wu1yi2fan就先放上效果图。

permit.gif

看到了么,嘎嘎wu1yi2fan在访问驿站里面关于Adblock的那一篇的时候,输入了老地址,而且,还少打了一个k,居然还能访问到正确的页面!这就是这款插件给力的地方了。

注意:该插件使用前最好将固定链接设置为伪静态。(就是除了?p以外的固定链接。)
安装

安装方式就不多说了,直接在WordPress后台安装即可。

安装完成以后。我们就要进行配置。没错,wu1yi2fan强调N次的配置。

配置

Permalink Finder的配置页面在后台设置的二级菜单里面。进去以后,你会看到一丢丢的英文,额,没关系,你可以用翻译软件。不介意的话,看看wu1yi2fan的简单翻译~

 

Finding Permalinks

这里是选择匹配准确度的东东。依次下来分别是“禁用”,“任何一个单词匹配”,“至少两个”,“至少三个”,“至少四个”。其中,不用说大家都应该知道,“任何一个单词匹配”的效果最好。^_^

Redirect Status Code

这里是设定重定向方式的。就不用多说了吧。分别是301永久重定向(推荐),302临时重定向,还有303重定向(将post方式重定向为get),307……好吧,wu1yi2fan真的不知道用来干啥子。通常设置为301重定向就好了。因为……301重定向更加利于SEO。

通常设置完这两个就好了。但是,如果你要设置的更加详细(其实下面的根本不用动。),那么就继续吧。

Search Categories

设置重定向的时候是否匹配分类目录的地址。

Fix Blogger Labels:

修复博客标签,经测试,这个功能没用。

Don’t use Common words

匹配时忽略常用词组。这么蛋疼的东东当然不用啦。

Don’t use short words

忽略介词,比如说“a”,跟上面一个一样,没用。

Don’t use numbers

忽略数字。

Check Using Loose Search

使用模糊搜索。(模糊+模糊)

Use all words in the URL

检查链接的全部内容。这表示只要链接里面有相关的字符就进行匹配。不勾选的话就只匹配后面的几个单词。

Metaphone search (sounds like)

在单词有拼写错误的时候,忽略拼写错误。

Track 404 and redirects

跟踪404错误和被重定向的链接。

Do not redirect

不使用重定向。这意味着匹配以后,会在错误的链接页里面显示匹配出来的页面。(换句话就是,网页是匹配到的网页,但是链接是打错的那个链接。)

Robots.txt missing

在没有Robots.txt的时候,返回后面的内容作为Robots.txt

favicon.ico or apple-touch-icon.png missing

在没有网站ico的时候,返回WordPress的图标作为网站图标。

sitemap.xml missing

在没有sitemap.xml的时候,返回最近的20个页面作为sitemap。

crossdomain.xml missing

在Crossdomain.xml丢失的时候,提供一个Crossdomain.xml防止被攻击。(不知道有什么用啊= =)

Dublin.rdf missing

在Dublin.rdf丢失的时候,返回一个。

OpenSearch.txt missing

在OpenSearch.txt丢失的时候返回一个。(氧化钙!!!几乎都没有什么用啊!!!无聊啊!!!累死人啦!!!)

最后一个,隐藏捐助信息。

小结

总的来说,大家要设置的只有前两项。而且,模糊匹配的效果有点不尽人意,甚至有些不存在的链接会出现循环重定向。但是,对于某些因为代码错误导致出错的链接,有很好的重定向效果。

让你的评论框生动起来 – 给WordPress评论框添加表情

咳咳,现在很多站点的评论框都可以给自己的评论添加表情,别小看了表情君,这可以让原来呆板的评论顿时多了些许生气。但是,并不是所有的主题都有这个功能,所以,wu1yi2fan在百度过后,根据几位大神的教程,写下了这一篇,希望能让大家看得懂吧。因为涉及到的方面比较多,所以,请各位理好头绪哦~

先放上成品图。

icon4comment1.jpg 第1张

要完成这个效果,首先,你要对评论框做一些手脚。

注意!修改以后请将文件编码更改为UTF-8无BOM格式,否则会出现乱码!额,提到这里,wu1yi2fan推荐使用Notepad++作为你的代码编辑器。

icon4comment11.jpg 第2张

添加评论框插入表情代码

这部分内容的代码部分来自西门。原文:

完美实现WordPress评论表情  ons.me/80.html

1.首先,下载表情功能代码smiley.php。下载地址:

本地下载(SF) 本地下载(百度云) 原地址

额,对了,有人说wu1yi2fan你在干什么,这个百度云下载链根本就没有进入到百度云嘛,呵呵,wu1yi2fan已经用Api的方式直接调取下载地址哦。这个具体怎么实现,额,自己去找找WP2PCS插件。

下载以后,把里面的smiley.php解压到主题文件夹下。

icon4comment2.jpg 第3张

2.接下来,我们要将这段代码嵌入到主题里面。

找到主题文件夹下的comments.php。找到“<textarea”标签(因为这里面可能会有一些参数,所以直接这样搜索比较好。)

icon4comment3.jpg 第4张

找到以后,在这行代码前面加上这样一段代码。

[ccein_php theme="dawn"]<?php include(TEMPLATEPATH . '/smiley.php'); ?>[/ccein_php]

icon4comment4.jpg 第5张

额,原文到这里就没了,但是,事实上还没有完哦。因为你需要确定一下textarea标签里面的id参数。比如说驿站里面的是”postcomment”。那么,你需要打开smiley.php,将6,7行高亮部分替换掉。本地下载的话,将”postcomment”替换成自己主题的id,原地址下载呢,就把”comment”替换成自己的id。如果这行参数里面没有id,那么,自己加一个就好了^_^。

icon4comment10.jpg 第6张

但是,如果根本没有这个标签……好吧,自己去找插件实现。

别忘了,还要在你主题的style.css里面加上这一串代码

[ccein_html theme=”dawn”]#smilelink{cursor:pointer; width:465px;}[/ccein_html]

P.S. width参数代表的是表情栏的宽度。大家可以根据需要修改。如果想实现自适应的话,可以将参数设置为auto

3.表情

WordPress通常已经自带了一些表情,在wp-includes\images\smilies 里面。如果没有,或者不喜欢。西门提供了一套,当然,你也可以自行替换。

西门提供的表情包

ximensmiley.jpg 第7张

点我下载

QQ表情包

QQsmiley.jpg 第8张

点我下载

让最近评论挂件显示表情

搞定上面以后,你的评论框就可以插入表情了,但是,最近评论挂件里面显示的却是一些奇怪的代码,这该怎么办?最近评论插件根本就不显示评论内容又改怎么办?所以,我们要进行这一步。

1.让最近评论挂件显示评论内容

这部分内容技术部分来自

这里是v2,就是还可以显示出评论者的头像,v1就是只显示内容。

要想挂件显示出评论内容,就要打开wp-includes文件夹,找到default-widgets.php,搜索“if ( $comments ) {”,当然,这是以3.9.1来测试。

找到以后,我们把(就是那一整段。)

[ccein_php theme="dawn"]$output .= '<li class="recentcomments">' . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x('%1$s on %2$s', 'widgets'), get_comment_author_link(), '<a href="' . esc_url( get_comment_link($comment->comment_ID) ) . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '</li>';[/ccein_php]

替换成

[ccein_php theme="dawn"]$output .= '<li class="recentcomments" style="overflow: hidden;"><span class="avatar_40" style="float: left; margin-right: 15px;">'.'</span>' .sprintf(_x('%1$s 在 %2$s 吐槽:', 'widgets'), get_comment_author_link(), '<a href="' . esc_url(get_comment_link($comment->comment_ID) ) . '" rel="nofollow">' . get_the_title($comment->comment_post_ID) . '</a>') . '' .strip_tags( $comment->comment_content) . '</li>';[/ccein_php]

即可。

但是,如果你想要有头像的话,那就在“<span class=”avatar_40″ style=”float: left; margin-right: 15px;”>’.’”后面加上”get_avatar($comment, 40).”

也就是

[ccei_php theme="dawn"]$output .= '<li class="recentcomments" style="overflow: hidden;"><span class="avatar_40" style="float: left; margin-right: 15px;">'.get_avatar($comment, 40).'</span>' .sprintf(_x('%1$s 在 %2$s 吐槽:', 'widgets'), get_comment_author_link(), '<a href="' . esc_url(get_comment_link($comment->comment_ID) ) . '" rel="nofollow">' . get_the_title($comment->comment_post_ID) . '</a>') . '' .strip_tags( $comment->comment_content) . '</li>';[/ccei_php]

好了,现在,就大工告成了吧?

icon4comment9.jpg 第9张

扩展

在get_avatar($comment,40)中,数字40代表的是头像大小为40*40,所以大家可以更具自己的需要更改大小哦。

2.让评论挂件显示表情

按上面的方法修改完以后,你会发现,纳尼,怎么会没有表情呢?全部都变成了奇怪的符号耶。额,这是因为,我们还少了一步。

这部分内容技术部分还是来自西门。原文:

Comment Reply Notification插件设置邮箱及表情符号变图片 ons.me/132.html

其实,很简单。我们在输出评论内容的时候,忘记让WordPress输出表情了。这,需要一个函数 “convert_smilies()”。换句话,就是把上面的代码最后加上“convert_smilies()”。也就是……

[ccein_php theme="dawn"]$output .= '<li class="recentcomments" style="overflow: hidden;"><span class="avatar_40" style="float: left; margin-right: 15px;">'.get_avatar($comment, 40).'</span>' .sprintf(_x('%1$s 在 %2$s 吐槽:', 'widgets'), get_comment_author_link(), '<a href="' . esc_url(get_comment_link($comment->comment_ID) ) . '" rel="nofollow">' . get_the_title($comment->comment_post_ID) . '</a>') . '' convert_smilies(.strip_tags( $comment->comment_content)) . '</li>';[/ccein_php]

好了,现在,一切都OK了吧?

icon4comment5.jpg 第10张

WordPress3.9.1更新,更新停不下来!

话说WordPress又发布了3.9.1更新~wu1yi2fan不得不感慨这个年头果然是速度是第一要义啊。那么,我们先看看这次更新的内容吧。(P.S.:Xnces同志又在向wu1yi2fan抗议了,额,我不是有意和你撞稿的啊……)

内容是英文滴,中文小组赶紧翻译撒~先让wu1yi2fan粗略的翻译一下。

From the announcement post , this maintenance releasefixes 34 bugs with 3.9, including numerous fixes formultisite networks, customizing widgets while previewingthemes, and the updated visual editor. We’ve also madesome improvements to the new audio/video playlistsfeature and made some adjustments to improveperformance.公告原文

该维护版本修复了WordPress3.9的34个Bug,包括许多修复多站点网络,自定义窗口小部件,同时预览主题和更新的可视化编辑器。我们还做一些改进,新的音频/视频播放列表功能和做了一些调整,以改善性能。

具体的Bug呢……你可以看官方的原文,当然,这是英文滴~传送门 ,wu1yi2fan当然不会把34个Bug全部列举出来,毕竟太长了,wu1yi2fan就说几个比较重要的修复,看看你有没有遇到(貌似这些Bug都是别人反馈以后修复的。)

WordPress 3.9 editor not show link button as pushed on images with links.
WordPress 3.9 文章编辑器不显示链接按钮和图像链接按钮

WP 3.9 – PHP Warnings in Customizer if Theme has set a default image for Custom Header.
主题的自定义页面在设置顶部图片(比如说驿站的logo)的时候遇到PHP报错。

Multisite subdirectory install breaks if network path has uppercase letters.
空间(或主机)内多个WordPress安装时,如果路径中有大写字母,会安装失败。

Theme install return wrong install_url on network admin.
安装主题时会返回错误的安装地址。

Custom Menu widget can’t be previewed without changing a field.
实时预览功能(WordPress 3.9新增,就是更改主题小工具的时候可以直接预览效果)中的自定义菜单无法预览。

Shortcode double brackets ending on newline breaks post editor.
文章编辑器中使用短代码括号时出错。

If the editor’s “Toolbar toggle” button is removed, the second toolbar row may remain hidden.
删除“Toolbar toggle”按钮时,编辑器工具栏第二行会被隐藏。

Editor frame becomes huge after dragging the corner to resize it.
编辑框在调整大小后变得很大。

Recent Posts widget breaks ob stack.
小工具“最近的文章”错误。

额,貌似忘记了最重要的一个

Theme preview empties sidebar on active theme.

1.) Insert at least one widget into a sidebar. You can insert one with Appearance -> Widgets or Appearance -> Customize -> Widgets. This makes no difference in its (bug) result.

2.) Go to Appearance -> Themes. Click “Live Preview” on an inactive theme. Wait until you see the Live Preview. Now click on left top the button Cancel.

3.) Go to frontend and check, if the widget is still there. It is not. The sidebar is empty. In my test this concerns also older widgets, imo, it concerns all widgets.

看不懂吧?嘎嘎,现在wu1yi2fan解释一下。

当你往侧边栏里面添加小工具以后,在主题设置里面预览一个没有启用的主题,当你关闭预览的时候,侧边栏里面的东西就全部不见了,它们去哪了?呵呵,就在“未使用的小工具”里面。这就是这个bug的全部内容。

介绍完了内容,wu1yi2fan只能说,WordPress你够了啦,最近30天更新了4次啊,差不多一个星期就更新一次啊,能不能麻烦好好测试一下再发布新版本??这样子的疯狂更新有点让人吃不消啊……wu1yi2fan只能希望,WordPress能够淡定一点点,矜持一点,做够足够的测试再发布,就比如上面那个关于小工具的Bug,wu1yi2fan在WordPress论坛里看到很多人都为这个问题所困扰,甚至有人不敢打开预览页面。

额,说到更新……好吧,最近驿站的更新有点慢哈,不过,大家要相信,驿站一定会保持每月两篇的优良传统哈~当然,最好的告别等待的方式当然是订阅驿站的RSS源啦~具体方式嘛……看这里

最新资讯快速掌握 – RSS阅读器(浏览器篇)