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

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

前几篇里面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捣鼓小记2

本文承接 VPS下好折腾 – VPS捣鼓小记 建议先看看这篇在接着往下看哦。

过了差不多五个月,wu1yi2fan我总算是继续写这个系列了,不知道你们有没有等急……好了,废话不多说,让我们继续之前说的吧~

如果说你想在VPS上弄多个网站或者子域,那么,你就需要设置虚拟主机。

接下来的内容参考自 http://lnmp.org/faq/lnmp-vhost-add-howto.html

开始

1.新建账户

在putty中输入命令

lnmp vhost add

接下来,输入需要绑定的域名。

虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第1张

接下来会询问你是否添加更多域名,大家根据自己需要决定。

虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第2张

接下来,就是设定域名所对应的目录了,没什么特别需要的话,直接回车用默认就好。

注意:这里的目录必须是完整地址,如”/home/wwwroot/nav.ltopro.com”

(此处本应有图,然而不见了)

2.指定伪静态规则

接下来,就是是否启用伪静态了,推荐选是,免得后面自己要用的时候要去翻VPS上的配置文件修改。

 虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第3张

接下来,就是指定伪静态规则了,lnmp自带了一些伪静态规则,具体列表如下:

自带伪静态规则列表

如果你要用列表里的php程序的话,直接输入对应的规则名称就可以设定好静态规则了。如果你想要自定义静态规则,请输入other

 虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第4张

接下来,会询问你是否记录连接日志,根据自己情况选择,如果选择了是,接下来会让你指定储存位置和名称,同样,回车表示使用默认设置。

 虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第5张

3.FTP账户与MySQL账户

接下来就是问你要不要让数据库和MySQL的用户名一致,如果选否,接下来会让你分别设置数据库名称和用户名。

 虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第6张

然后就是输入管理员的MySQL密码来进行验证了。

 虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第7张

接下来,就是设置数据库名称和用户名密码啦。

 虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第8张

虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第9张

设置完成以后会问你是否创建FTP账户。选择是以后就是设定FTP账户和用户名。

 虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第10张

虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第11张

设定完成以后,按任意键开始创建虚拟主机……在创建完成以后,会显示你之前设置好的所有信息。

 虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第12张

好了,现在就可以拿着FTP账户去折腾啦~

4.注意事项

在给虚拟主机上传文件的时候,一定要用创建好的对应的FTP账户进行操作!否则接下来你的php程序就会提示无法写入(修改)文件了……(别问我怎么知道的)

如果你已经手贱了怎么办呢……那就是重置目录的权限啦。

方法来自 http://www.uedbox.com/lnmp-pureftpd-ftp-user-permitted/

在putty内输入以下命令:

chattr -i /home/wwwroot/你的目录/.user.ini
chown www:www -R /home/wwwroot/你的目录/

好了,这下子FTP的权限应该就正常啦。

5.域名绑定

创建了虚拟主机以后,让我们进行域名绑定操作吧。

来到你的域名解析处,将对应的域名用A记录解析到VPS所在的IP上即可。

 虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第13张

6.删除虚拟主机

在putty中输入命令

lnmp vhost del

然后会列出所有已经创建的虚拟主机

 虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第14张

接下来,输入你想删除的域名就好啦。

虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第15张

此时系统会提示你需要手动删除对应的文件。但是,当初跟随虚拟主机建立的FTP账户和MySQL账户并没有被删除,我们还需要手动删除FTP账户和MySQL账户。

接下来输入命令

lnmp ftp del

此时系统会列出已经创建了的FTP账户和对应的目录,输入你想要删除名称即可。

输入名称后,lnmp会等待10秒,此时你可以按下Ctrl+C来取消这一次操作。10秒后,该账户就会被删除。

虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第16张

然后我们继续删除数据库。输入命令

lnmp database del

此时lnmp同样会列出所有的数据库,输入你想删除的数据库名称即可。

此时lnmp一样会等待10秒,你可以在这个时候按下Ctrl+C取消删除操作。

虚拟主机大法好 – VPS捣鼓小记2 - 勒统驿站 | LtoPro 第17张

小结

至此。VPS捣鼓小记应该就告一段落了。但!是!如果你想继续看如何把网站SSL,那么,就期待一下捣鼓小记3吧~估计过年之前可以更新吧~

 

辣鸡评论别烦我 – 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

输入以后没有任何提示。

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

VPS下好折腾 – VPS捣鼓小记

其实我一直都想买个VPS。不过一直都没有下定决心。这次之所以下定决心,完全是因为弄https。

因为万恶的cPanel并不能指定服务器上的证书,必须自己手动上传,所以在驿站https以后显得格外蛋疼。隔壁某X用的主机商挺好人的提供了一键https功能,所以这货很淡定,但是,我不淡定了啊。虽然说有大神谢了cPanel的一键申请并续期Let’s Encrypt证书的插件,但是,无奈我用的主机商并没有安装。所以……VPS走起!

关于驿站怎么https的,额,看隔壁某X的这篇:https://www.xnces.com/wp-encrypt.html 如果不习惯某X的风格,或者想看wu1yi2fan的原汁原味版本……因为跟某X说我不会发,所以在驿站里面就找不到啦,但是你可以戳这里:http://pan.baidu.com/share/link?shareid=1631225979&uk=184671241

好,废话不多说,我们开始吧。

注意:wu1yi2fam使用的VPS系统为CentOS。不同系统的命令会有所不同。

1.登陆VPS

折腾VPS的第一件事情,就是登陆VPS。常用的工具就是putty啦。听说有人在网上散布植入了恶意代码的putty,所以请大家去官网下载,用bing搜索putty就可以看到啦。如果你信得过wu1yi2fan,那么可以戳这里进入下载页面:https://the.earth.li/~sgtatham/putty/latest/x86/putty.zip

解压出来以后,打开putty.exe。

VPS下好折腾 – VPS捣鼓小记 - 勒统驿站 | LtoPro 第1张

按图输入信息以后,先在下面输入一个名字,点击旁边的“save”,这样子下次使用就不用输入配置,直接双击就可以了。接下来,点击open,会有一个提示说链接不安全什么的,点“是”无视就好啦。

接下来就是输入用户名和密码的环节,通常用户名是root,密码就是你自己设置的VPS密码。

注意:输入密码的时候是不会显示任何内容的哦。

VPS下好折腾 – VPS捣鼓小记 - 勒统驿站 | LtoPro 第2张

如果显示了跟图上差不多内容,那么就代表登陆成功啦。

2.搭建php环境

毕竟搞个VPS来也是为了放网站,所以嘛,当然要配置php环境啦。

配置php环境常见的有几种方案,分别是LAMP,LNMP。因为我买的VPS有512M,再加上为了方便弄https,所以我选择了LNMP。

下面的内容参考自http://lnmp.org/install.html

首先安装一个神奇的工具screen,免得安装脚本出错。这个脚本的作用就是控制屏幕里面显示的内容。

安装命令:

yum install screen

VPS下好折腾 – VPS捣鼓小记 - 勒统驿站 | LtoPro 第3张

安装完成以后,输入以下命令清屏:

screen -S lnmp

好的,下面正式开始。

输入以下命令(可以直接复制,在putty窗口右键即可粘贴)开始安装。在安装过程中,如果不懂某个东西有什么用,就默认吧。

wget -c http://soft.vpser.net/lnmp/lnmp1.3-full.tar.gz && tar zxf lnmp1.3-full.tar.gz && cd lnmp1.3-full && ./install.sh lnmp

接下来会进入配置界面,首先配置mySQL的密码,默认用户为root。密码会以明文的方式显示出来。

注意:使用小数字键盘输入数字可能会出现乱码

VPS下好折腾 – VPS捣鼓小记 - 勒统驿站 | LtoPro 第4张

接下来就是问你是否启用MySQL InnoDB,这里直接输入Y即可。

VPS下好折腾 – VPS捣鼓小记 - 勒统驿站 | LtoPro 第5张

然后就是问你mySQL和php的版本啦,通常默认就可以了。

然后会问你是否使用内存管理……直接按照默认不启用就好了。

VPS下好折腾 – VPS捣鼓小记 - 勒统驿站 | LtoPro 第6张

这些都配置完成以后,按任意键开始安装,按Ctrl+C取消。

安装过程中请不要关闭putty窗口,安装所需要的时间嘛……wu1yi2fan我开始安装以后就去吃饭了,碗还没洗完就安装完成了,大概半个小时左右。

VPS下好折腾 – VPS捣鼓小记 - 勒统驿站 | LtoPro 第7张

显示这个界面,就算是安装成功啦。

VPS下好折腾 – VPS捣鼓小记 - 勒统驿站 | LtoPro 第8张

在浏览器里面输入IP地址,就可以看到这个界面啦。

VPS下好折腾 – VPS捣鼓小记 - 勒统驿站 | LtoPro 第9张

安装完成以后,要怎么访问数据库呢?

一键lnmp包为我们提供了phpMyAdmin用于管理数据库。访问IP地址/phpmyadmin就可以进入数据库管理界面啦。

当然,推荐你们在安装完成以后修改phpMyAdmin的目录。

VPS下好折腾 – VPS捣鼓小记 - 勒统驿站 | LtoPro 第10张

在填写数据库地址的时候,直接写localhost就可以了哦。

3.绑定域名

基本环境配置好以后,要怎样才可以用自己的域名访问VPS呢?其实也很简单。

在域名解析页面,用A记录指向VPS的IP就可以啦。

VPS下好折腾 – VPS捣鼓小记 - 勒统驿站 | LtoPro 第11张

4.安装FTP服务

没有FTP怎么可以方便的传代码呢,所以我们要安装FTP服务。

输入以下命令安装FTP服务

cd /root/lnmp1.3-full
./pureftpd.sh

输入以后会进入以下界面

VPS下好折腾 – VPS捣鼓小记 - 勒统驿站 | LtoPro 第12张

按任意键就可以开始安装了。

安装完成以后,让我们先添加一个用户,输入命令

lnmp ftp add

然后输入用户名和密码

注意:用户名区分大小写

VPS下好折腾 – VPS捣鼓小记 - 勒统驿站 | LtoPro 第13张

接下来会让你指定目录。这里wu1yi2fan推荐输入存放网站文件的根目录,防止其他文件被动用。

存放网站文件的默认目录为/home/wwwroot/default/

输入目录以后,ftp账户就配置好啦。

5.SFTP

如果说你没有安装FTP服务或者懒得折腾,怎么办呢?那就要请出我们的SFTP啦。SFTP的原理是通过SSH来完成各项操作,所以,在VPS没有安装FTP的情况下,依然可以通过SFTP来管理服务器上的文件。常见的SFTP客户端就是WinSCP啦。

下载WinSCP并打开,点击“新建”,输入服务器的地址,用户名和密码和上面用putty登录时使用的密码一样。

VPS下好折腾 – VPS捣鼓小记 - 勒统驿站 | LtoPro 第14张

接下来点击“连接”,会弹出和putty一样的密钥不安全的提示,点击“是”继续。

VPS下好折腾 – VPS捣鼓小记 - 勒统驿站 | LtoPro 第15张

然后,你就可以看到VPS上的文件啦。接下来就和普通的FTP客户端一样操作吧。

到这里,VPS的基本环境就配置完啦。上传你的网站文件和数据库,开始调整网站吧。后面,我会跟大家说说怎样在一个VPS上跑多个网站。

简单粗暴彻底无害 – 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张

副标题,我才不要有副作用呢 – Subtitle 360

话说最近感觉标题不够用了。额,我承认呢,因为自己的特殊喜好,所以标题从来都不是开门见山(似乎有几个例外?)。有时候呢,又嫌标题不够有吸引力,总之,就是一个标题说不完所有想说的内容啦副标题,我才不要有副作用呢 – Subtitle 360 - 勒统驿站 | LtoPro 第1张

然后呢,猛然间想起来某X曾经推荐过一个副标题插件Visual Subtitle,然后果断跑去下载,结果……嗯,副标题的效果不错,就是……估计某X没有测试使用图床的状况,但是,wu1yi2fan试过,结果是……在原来正确的地址后面,加上了一串副标题参数,导致没办法正确引用图片。如图。

副标题,我才不要有副作用呢 – Subtitle 360 - 勒统驿站 | LtoPro 第2张

这个情况不只是出现在某X推荐的Visual Subtitle上,后面,我还测试了好几款副标题插件(用Subtitle作为关键词搜索),结果,所以自动添加副标题的插件全部都有类似的状况。凡是有链接的地方都会自动插入副标题信息,额,这可怎么办?

wu1yi2fan都说啦,只有自动添加副标题的插件才会出现这种状况副标题,我才不要有副作用呢 – Subtitle 360 - 勒统驿站 | LtoPro 第3张,所以,如果是可以由我们自己定义出现位置的插件呢?于是,wu1yi2fan找了一下,果然,国外的大神就是这么贴心,有一款插件完全符合要求!那就是……Subtitle 360!

这款插件并不会自动添加副标题,你需要通过一串代码,在需要使用副标题的地方显示出来,所以,不用担心以上蛋疼的问题。(哈哈哈哈哈哈哈哈哈哈哈……好开心啊……又拆某X的台啦……哈哈哈哈哈哈哈哈……副标题,我才不要有副作用呢 – Subtitle 360 - 勒统驿站 | LtoPro 第4张

OK,现在,我们就请上这款插件。

插件信息

基本信息使用方法注意事项

插件名称:Subtitle 360

插件主页:https://wordpress.org/plugins/subtitle-360/

插件描述:这款插件会在文章编辑页面添加副标题板块,在这里输入副标题以后,使用特定的代码就可以让副标题显示在指定位置。

后台搜索安装即可。使用代码

<?php if (function_exists('the_subtitle')){ the_subtitle(); }?>

便可以让副标题显示在指定位置。

插件默认使用h4显示,如果需要更改,请直接修改插件主文件(其实也就一个文件)最后面

		echo '<h4 class="subtitle_head">';
		echo get_post_meta($post->ID, 'page_sub_title', true);
		echo '</h4>';

这一部分。

让副标题显示在RSS中

这个,你可以用第三方插件解决,当然,也可以使用以下代码。(因为某些原因,只能输出到Feed内容前面啦,原来想加在标题后面,不过试了几次,结果都是feed瘫痪,如果大家有方法的话,拜托评论告诉我哦。)参考了WordPress大学中的内容。原文:7+ WordPress RSS Feed 设置及优化技巧

//RSS中添加副标题
function LtoPro_rss_feed_subtitle($content) {
    if(is_feed()) { //让以下代码只在Rss Feed中执行
    if (function_exists('the_subtitle')){  //判断文章是否有副标题有则输出,没有则不输出
        $output =the_subtitle();
        }else{
        $output="";
        }
        $content = $output.$content;  //将副标题添加到文章内容前面
    }
    return $content;
}
add_filter ('the_content', 'LtoPro_rss_feed_subtitle');

 

免插件

什么?你不喜欢用插件?我特么你有插件强迫症啊?额……别急,因为,这款插件可以去插件化,变成一段代码插入到function.php里面哦。什么?你不信我?55555……副标题,我才不要有副作用呢 – Subtitle 360 - 勒统驿站 | LtoPro 第5张我现在就证明给你们看!

原理

相信你们可以发现,这款插件只有一个php文件,这特么是去插件化的最佳状态!因为只需要把这个文件里面的内容稍稍修饰插入到function.php里面,就可以完成。如果有很多个文件的话,那就会蛋疼很多。好,现在,我就把代码贴出来。

    add_action( 'admin_menu', 'my_create_post_meta_box' );
    add_action( 'save_post', 'my_save_post_meta_box', 10, 2 );

function my_create_post_meta_box() {
    add_meta_box( 'my-meta-box', 'Post Sub Title', 'my_post_meta_box', 'post', 'normal', 'high' );
    add_meta_box( 'my-meta-box', 'Page Sub Title', 'my_post_meta_box', 'page', 'normal', 'high' );
}

function my_post_meta_box( $object, $box ) { 

//下面的<div>到</div>部分是在文章编辑器中显示的样式

?>

    <div id="postcustomstuff">
    <p>
    
        <label>请输入副标题:</label>
        <input name="page_sub_title" id="sw_title" style="width: 97%;" value="<?php echo esc_html( get_post_meta( $object->ID, 'page_sub_title', true ), 1 ); ?>" />
        <input type="hidden" name="my_meta_box_nonce" value="<?php echo wp_create_nonce( plugin_basename( __FILE__ ) ); ?>" />
    </p>
    </div>
<?php }

function my_save_post_meta_box( $post_id, $post ) {

    if ( !wp_verify_nonce( $_POST['my_meta_box_nonce'], plugin_basename( __FILE__ ) ) )
        return $post_id;

    if ( !current_user_can( 'edit_post', $post_id ) )
        return $post_id;

    //Saving 1st Data
    
    $meta_value = get_post_meta( $post_id, 'page_sub_title', true );
    $new_meta_value = stripslashes( $_POST['page_sub_title'] );

    if ( $new_meta_value && '' == $meta_value )
        add_post_meta( $post_id, 'page_sub_title', $new_meta_value, true );

    elseif ( $new_meta_value != $meta_value )
        update_post_meta( $post_id, 'page_sub_title', $new_meta_value );

    elseif ( '' == $new_meta_value && $meta_value )
        delete_post_meta( $post_id, 'page_sub_title', $meta_value ); 
}
function the_subtitle() {

//这里是定义输出的副标题样式的地方,可以自行修改。

		global $post;
		echo '<h4 class="subtitle_head">';
		echo get_post_meta($post->ID, 'page_sub_title', true);
		echo '</h4>';
}
?>

这里面的代码其实是直接把原文件复制过来的,我加上了一些注释,仅此而已副标题,我才不要有副作用呢 – Subtitle 360 - 勒统驿站 | LtoPro 第6张。复制到function.php最后“?>”的前面即可。使用方法也一样。

总结

这款插件没有过多的设置项,连样式都是直接继承插入位置的样式。因为是自己手动插入,所以不用担心各种问题,除非自己插入的位置或者方式不对。目前,驿站就在使用这款插件。

顺便的,使用标签页以后,感觉篇幅小了很多,哈哈。

 

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: 求蛋糕!

三蛋开中文版站点(雾),欢迎入住!

三蛋是啥子我就不用解释了吧,老牌的免费空间,就是注册起来比较麻烦,因为限制了大陆的IP注册。通常是申请了以后,空间迟迟没有开通,但是如果换成其他地方的IP,那可是秒开!

额,扯远了。其实,是因为三蛋发了封邮件给我。内容如下:

image

您好,

针对中国用户,000webhost向您推荐http://www.hostinger.com.hk – 全球最大的免费空间提供者。

Hostinger.com.hk提供以下配置的高水准免费空间:
-2GB空间
-每月100GB流量
-完美支持PHP和MySQL数据库
-简单易用的建站助手
-软件一键安装助手(您可以一键安装Wordpress等超过50种流 行的程序到您的空间)
-支持绑定域名!同时提供超多免费二级域名可供选择!
-高配置的服务器
-全中文体验!

您可以在这里查看我们的其他主机套餐: http://www.hostinger.com.hk/web-hosting

欢迎访问我们的官网:http://www.hostinger.com.hk

感谢您使用我们的服务。 www.000webhost.com

额,怎么说呢。三蛋是知道我们国人为了申请他家的空间而如此蛋疼所以才开了中文版本么?不管怎么说,有三蛋做保证,这家主机商稳定性是肯定的。看域名,估计服务器位置在香港,那么,速度估计也不会慢到哪里去,不过,wu1yi2fan现在用手机呢,不方便进行测试,如果大家谁测试过了,欢迎评论告诉我哦。(顺便去骚扰一下qi,看一下他有没有时间去评测这个三蛋中文版*^_^*)

(貌似qi评测过这个主机商,不过他评测的貌似是 hostinger.kr,不知道这个.hk怎样。。。 )

(有人指出来了我就直说吧,这家主机商和三蛋都是一个公司的,服务器都在欧洲,不过……hostinger的口碑很烂……→_→而且,貌似会删账号……果然,还是付费的靠谱!)

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

之前,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就不多说了。

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