Posts Tagged ‘wordpress’

WordPress自动封垃圾邮件IP的思路和实现方法

星期日, 八月 21st, 2016

原创内容,转载请注明出处: http://www.myzhenai.com.cn/post/2287.html http://www.myzhenai.com/thread-17912-1-1.html
关键词: wordpress垃圾回复 wordpress封ip iptables封IP wordpress自动封IP wordpress自动封发垃圾邮件的IP
众所周知,WordPress有一个自动拦截垃圾回复的插件Akismet 但是这个插件有一个不方便的地方就是它只是在垃圾回复发布了才进行拦截, 但是这个难免也会涉及到数据库写入和删除,这无疑会增加服务器的负担, 所以我的思路是调用Akismet拦截垃圾回复的IP地址,并且用Shell脚本把这些IP写入到iptables防火墙过滤名单里. 当再收到这些IP发来的请求时,系统会自动将它们丢弃,不会进入系统操作了. 实现起来很简单, 现在我们来说一说实现的步骤.
一: 将以下代码添加到 /wp-admin/includes/class-wp-comments-list-table.php 的指定位置里, 有两个地方,一个是自定义函数,一个是添加自定义函数.
参考: WordPress获取垃圾回复IP地址的方法 http://www.myzhenai.com.cn/post/1875.html http://www.myzhenai.com/thread-16324-1-1.html

/** chong zhe li kai chi */
function my_spam_ip(){
    $aip = get_comment_author_IP(); /** 得到ip地址 */
    $txt = file_get_contents("/var/wwwroot/spam.log"); /** 对比ip地址是否存在文件内,防止重复输入 */
    $txt = preg_replace("/(\r\n|\n|\r|\t)/i", '', $txt);
    if (strpos($txt,$aip) === false) /** 如果文件内找不到这个ip地址 */
    {
        $handle = fopen("/var/wwwroot/spam.log","a+"); /** 打开文件并得到一个句柄,据说a+是写入? */
        fwrite($handle,$aip."\n"); /** 将获得的ip地址添加到文件中 */
    }
    echo "Spam IP: ".$aip."\n";
    fclose($handle); /** 关闭句柄 */
    }
/** dao zhe li jie shu  */

将这段代码添加在 /wp-admin/includes/class-wp-comments-list-table.php 文件里的 < ?php ?>符号内, 然后再将 my_spam_ip(); 这句添加到下行的下方.

$author_ip_url = add_query_arg( 'comment_status', 'spam', $author_ip_url );

class-wp-comments-list-table.php

class-wp-comments-list-table.php


class-wp-comments-list-table.php

class-wp-comments-list-table.php


二: 将以下Shell脚本代码保存为.sh后缀的脚本文件,上传到服务器指定目录, 然后在cron里添加一条定时任务.
参考: Linux下使用crontab添加定时任务 http://www.myzhenai.com.cn/post/1628.html

# !/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
path="/var/wwwroot/spam.log"
size=`ls -l $path|awk '{print $5}'`
if [ $size -gt 0 ];then
for i in $(< $path)
do
if [ $i != "" ];then
h=`grep -c $i /etc/sysconfig/iptables`
if [ $h -lt 1 ];then
iptables -I INPUT -s $i -j DROP
fi
fi
done
service iptables save
service iptables restart
IFS=$SAVEIFS
echo -n "" > $path
chown -R apache:apache $path
chmod 777 $path
fi

Shell脚本

Shell脚本


至此,设置完毕,然后你就会发现WordPress后台接收到垃圾回复就会越来越少了,因为只要你删除了的垃圾回复系统就会自动将它的IP地址进行过滤了.

WordPress获取垃圾回复IP地址的方法

星期三, 九月 24th, 2014

原创内容,转载清注明出处:http://www.myzhenai.com.cn/post/1875.html http://www.myzhenai.com/thread-16324-1-1.html
这个方法的前提是安装了akismet过滤插件,我的思路是这样的,因为WordPress的垃圾回复比较多,就算安装了akismet拦截也有好多被写入数据库,所以就想着有没有方法把这些垃圾回复的IP提取出来,然后用iptables封禁掉.这样一来就可以减少Mysql数据库的读写和降低服务器的资源占用.一直以来我以为这个功能需要在akismet中更改代码,但是在一朋友的提示下才知道这个是WordPress的内置功能.我们需要用到的函数是 get_comment_author_IP() 这个在官方文本中的注释是返回评论者IP.但是WordPress里还有一个comment_author_IP()函数也能获取评论者IP,但是我们在这里添加却没有办法获得它的返回值,所以要用 get_comment_author_IP(). 我们将下边的代码添加到 /wp-admin/includes/class-wp-comments-list-table.php这个文件中,在comment_author_IP();下边插入代码保存并上传覆盖原文件即可.修改前请先备份这个文件.

    $aip = get_comment_author_IP(); /** 得到ip地址 */
    $txt = file_get_contents("/spam.log"); /** 对比ip地址是否存在文件内,防止重复输入 */
    if (strpos($txt,$aip) === false) /** 如果文件内找不到这个ip地址 */
    {
    $handle = fopen("/spam.log","a+"); /** 打开文件并得到一个句柄,据说a+是写入? */
    fwrite($handle,$aip."/n"); /** 将获得的ip地址添加到文件中 */
    }
    fclose($handle); /** 关闭句柄 */

WordPress 获取 垃圾 回复 IP 地址 方法

WordPress获取垃圾回复IP地址的方法


WordPress spam 获取 垃圾 回复 IP 地址 方法

WordPress获取垃圾回复IP地址的方法


WordPress 函数 get_comment_author_IP 注释

WordPress函数get_comment_author_IP注释


本来我想将代码添加到当前主题中的评论模块comments.php文件中的,但因为我还搞不懂如何判断是否为垃圾回复,为了避免所有回复用户的IP都被收录过滤,所以暂时先不把它加到这个文件中了. 我查找了WordPress官方文档,好像用wp_allow_comment()和wp_get_comment_status()还有wp_blacklist_check()这三个函数可以判断是否为垃圾回复,但是因为我还不懂得如何写这些代码的参数.所以先不弄了,如果您懂得的,欢迎您指点,谢谢了.

快速升级wordpress的方法

星期六, 八月 9th, 2014

原始内容,转载请注明出处:http://www.myzhenai.com.cn/post/1839.html http://www.myzhenai.com/thread-16304-1-1.html
这里的方法是指拥有服务器管理权限的,假如你使用的是独立服务器或VPS虚拟服务器就可以使用这个方法,如果使用的是虚拟主机的话,还是使用wordpress的在线升级或FTP上传升级吧.

#ssh -p Port IP
#wget https://downloads.wordpress.org/release/wordpress-3.9.2.zip
#unzip wordpress-3.9.2.zip
#vi del.sh

这里的vi是创建一个脚本文件删除解压出来的安装包里的文件,输入vi del.sh后进入vi界面,点击键盘上的i键进入编辑模式,将以下内容复制并帖贴到界面里,然后按下键盘上的Eac键退出编辑模式,然后再按下Shift+Z+Z键保存即可.

# !/bin/bash
rm -rf wordpress/license.txt
rm -rf wordpress/readme.html
rm -rf wordpress/wp-admin/images/wordpress-logo.svg
rm -rf wordpress/wp-admin/images/wordpress-logo.png
rm -rf wordpress/wp-admin/images/w-logo-blue.png

然后再执行以下操作完成整个步骤.

#sh del.sh
#\cp -ar wordpress/* /var/html/www/
#chown -R apache:apache /var/html/www/*
#rm -rf wordpress-3.9.2.zip
#rm -rf wordpress

/var/html/www/这个是你的博客数据存放路径,可以自行更改成你的路径.
到这里升级过程就结束了,也就一两分钟的事.或者根据以上的内容写一个一键升级的脚本,但这个脚本在使用前需要修改下载地址和文件名.

# !/bin/bash
wget https://downloads.wordpress.org/release/wordpress-3.9.2.zip
# Please change your download address
unzip wordpress-3.9.2.zip
# Please change your compressed document file name
echo "# !/bin/bash" >> del.sh
# The following please add to delete the files according to their own needs.
echo "rm -rf wordpress/license.txt" >> del.sh
echo "rm -rf wordpress/readme.html" >> del.sh
echo "rm -rf wordpress/wp-admin/images/wordpress-logo.svg" >> del.sh
echo "rm -rf wordpress/wp-admin/images/wordpress-logo.png" >> del.sh
echo "rm -rf wordpress/wp-admin/images/w-logo-blue.png" >> del.sh
# .........
sh del.sh
\cp -ar wordpress/* /var/html/www/
chown -R apache:apache /var/html/www/*
rm -rf wordpress-3.9.2.zip
rm -rf wordpress

相关链接:http://www.myzhenai.com.cn/post/1705.html

快速 升级 wordpress 方法

快速升级wordpress的方法


快速 升级 wordpress 方法

快速升级wordpress的方法

解决fonts.googleapis.com造成国内wordpress博客打开缓慢的方法

星期日, 六月 8th, 2014

原创内容,转载请注明出处:http://www.myzhenai.com.cn/post/1825.html http://www.myzhenai.com/thread-16250-1-1.html
Google不能使用的解决方法请参考: http://www.myzhenai.com.cn/post/820.html http://www.myzhenai.com.cn/post/694.html http://www.myzhenai.com.cn/post/692.html http://www.myzhenai.com/thread-15207-1-1.html http://www.myzhenai.com.cn/post/677.html
很多wordpress架设的博客在浏览的时候总是会在浏览器状态栏那里看到停顿很久的一行内容“fonts.googleapis.com”如果您是一个站长,刚好您的博客浏览的时候卡在这里的时候,可以使用这个方法来解决.fonts.googleapis.com是Google字体服务器域名,因为国内已经封锁了Google服务,所以很多Google服务打不开了. 要么你让你的浏览用户上梯子,要么替换他们的host文件,要么就是你从源代码中做改变.
我们需要修改的是 wp-includes/script-loader.php 在这个文件中找到 $open_sans_font_url = “//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets”; 这一行.
如果你不想按照我以下方法修改的话,你可以将fonts.googleapis.com替换成74.125.128.95 我发现这样也是可以打得开Google的.

$url = 'http://fonts.googleapis.com'; //赋值给一个变量,这个变量的内容就是fonts.googleapis.com
if(fopen($url)) //判断这个地址是不是能够打开,进入判断语句
{ //如果地址可以正常打开,那么script-loader.php文件里的这一行我们不需要替换.
$open_sans_font_url = "//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets"; 
}else
{ //如果不能够正常打开,自动替换成fonts.useso.com服务器的.
$open_sans_font_url = "//fonts.useso.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets";
}

将以上代码(先将我的注释删除掉.)复制粘贴到 // Hotlink Open Sans, for now 这一行下方.保存后上传覆盖原来的文件即可.现在你可以发现浏览你的博客速度快很多了.
网上有个方法是简单的将fonts.googleapis.com替换成fonts.useso.com的,因为我是希望Google能够正常使用的时候继续使用Google原始的字体服务器,而不是360的CDN节点缓存.所以我才做了一个判断.希望对大家有所帮助。

解决 fonts.googleapis.com 造成 国内 wordpress 博客 打开 缓慢 方法

解决fonts.googleapis.com造成国内wordpress博客打开缓慢的方法


解决 fonts.googleapis.com 造成 国内 wordpress 博客 打开 缓慢 方法

解决fonts.googleapis.com造成国内wordpress博客打开缓慢的方法


解决 fonts.googleapis.com 造成 国内 wordpress 博客 打开 缓慢 方法

解决fonts.googleapis.com造成国内wordpress博客打开缓慢的方法

windows系统wordpress重定向教程与代码

星期五, 四月 4th, 2014

原创内容,转载请注明出处:http://www.myzhenai.com.cn/post/1798.html http://www.myzhenai.com/thread-16193-1-1.html
有朋友问说windows 2003的系统安装的wordpress如何将没有带www的地址301到带www的地址,于是便写了以下的代码.网上的方法是在wp-blog-header.php文件里添加php跳转代码,原理也就是检测当前打开的地址里有没有包含www字符窜,如果没有包含就替换掉当前字符窜,使用包含www的字符窜来打开.代码的操作流程是这样的.
1:检测当前来路地址
2:把当前来路地址当作一个字符窜来扫索,判断当中有没有包含www
3:跳转到新地址

< ?php
/**
* zhe shi windows server wordpress 301 tiao zhuan dai ma
* jiang <?php  ?> li de dai ma fu zhi dao wp-blog-header.php wen jian li
* zhan tie dao wp-blog-header.php wen jian li de < ?php xia yi hang 
**/
function curPageURL() /* huo qu dang qian liu lan ye mian di zhi */
{
    $pageURL = "http";
    if ($_SERVER["HTTPS"] == "on") 
    {
        $pageURL .= "s";
    }
    $pageURL .= "://";
    if ($_SERVER["SERVER_PORT"] != "80") 
    {
        $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
    } 
    else 
    {
        $pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
    }
    return $pageURL;
}
/* ************ zhe shi fen ge fu *************** */
$burl = curPageURL();
$url = stripos($burl,"www",0);
if($url === false){
$tixt = str_replace("http://","http://www.",$burl);
/* ru guo ni you zhi yu ming,qing ti huan zhe li de guan jian zhi */ 
}
else
{
$tixt = $burl;
}
header("Location:$tixt");
echo "zhe shi windows server wordpress 301 tiao zhuan dai ma";
echo "tiao zhuan cheng gong";
?>
windows 系统 wordpress 重定向 教程 代码

windows系统wordpress重定向教程与代码

eaccelerator1.0导致wordpress添加媒体和可视化无反应故障

星期二, 二月 25th, 2014

本来我的两个wordpress博客是可以正常使用的,但是今天不知道为什么突然出现了“添加媒体”和“可视化”没有反应的故障了.我以为是wordpress博客的源码问题,所以参照了网上的一些方法来进行修复,但是问题却没有得到解决.
按照网上的方法是:
1:编辑 wp-config.php 在文件末端加上以下代码.

define('CONCATENATE_SCRIPTS', false );

2:编辑 post-new.php

include( ABSPATH . 'wp-admin/admin-footer.php' );

在上边这一行上边加上以下代码.

echo'<script type="text/javascript" src="/wp-includes/js/jquery/jquery.js"></script>';

但是经过我测试,这两种方法都没有解决我的问题,于是我想起昨天我安装了eaccelerator1.0,不知道是不是这个原因.于是我登录VPS服务器,将eaccelerator1.0卸载以后,问题解决了.

记一次linux kloxo-mr wordpress discuz重装记录

星期六, 二月 15th, 2014

原创内容,转载请注明出处:http://www.myzhenai.com.cn/post/1705.html http://www.myzhenai.com/thread-16147-1-1.html
关键字:重装vps centos安装kloxo-mr linux安装kloxo-mr kloxo-mr一键安装 kloxo-mr简体中文 linux备份mysql代码 linux恢复mysql代码 discuz需要备份的目录 discuz备份 discuz重装
我有一台美国的vps服务器,本来安装的是kloxo管理面板,但因为前段时间kloxo曝出严重的漏洞,所以有可能是因此导致我的几个网站都不能打开.以前服务器提供商的技术客服已经通知我说我的服务器在对外发包攻击别人,有可能是我的服务器被入侵了。但因为重装费时费力,所以我也只是简单的排查一下,在服务器上安装了个clamav杀毒软件扫描了一下所有目录,但没有扫描出来有可疑文件,所以我也就不管了.直到前些天,BuyVM的技术客服给我发了个邮件,要求升级kloxo到kloxo-mr.我才将Kloxo升级成了kloxo-mr. 具体见 http://www.myzhenai.com/thread-16143-1-1.html http://www.myzhenai.com.cn/post/1691.html
可是我发现,kloxo-mr跟kloxo的使用还是有些差别,这个我也折腾了好久,具体是绑定域名后会弹出Hiawatha默认页面,但是网站并不能访问,见Hiawatha.jpg 后来我也在vps终端里停止了Hiawatha进程,还是没有效果. 又在kloxo-mr里切换程序成了apache网页服务器,但是也照样不能访问,为了这问题,我咨询了kloxo-mr的维护者,按照他的方法解决了.具体方法是在网页服务配置里选择最新版的php版本和php-fpm.具体的你可以试一试.然后

Hiawatha

Hiawatha

#yum install mod_ssl mod_ruid2 mod_rpaf mod_fastcgi mod_fcgid
#service hiawatha stop
#chkconfig hiawatha off
#sh /script/fix-all
#sh /script/cleanup
#sh /script/restart-all

如果不行的话,可以重复以上的步骤多几次,反正我是这么鼓捣成功的.

虽然升级成功了,但没过两天,我发现我服务器上的两个discuz论坛不能打开了,firefox打开首页是空白页,在IE浏览器打开显示内部500错误,刚开始我以为是伪静态规则改变导致的,所以我对比了我备份的伪静态规则,发现没有变,又参照着网上的一些方法处理了一下,还是不行.折腾了好多天,没办法,我在没有改变网站文件的情况下,直接重装安装了一遍,结果发现还是有这个问题,另外一个wordpress却能正常打开,但是用不了一天,apache就会崩溃,网站连接也会失去响应. 我只好要求vps服务器提供商的技术客服协助排查问题,第二天收到回复,好家伙,服务器上的所有php代码全部被感染加了代码.
没办法,在不确定以前备份的数据有没有被感染的情况下,只能是重新安装vps服务器和网站数据了.首先要做的是备份好discuz的附件和头像等数据,还有wordpress的附件.因为这些都是图片格式的,不可能会被加载代码.其他的js,php,html文件全部不保留了.

#mkdir back/home/wwwroot/discuzX2/data
#cp -ar discuzX2/data/attachment back/home/wwwroot/discuzX2/data/
#cp -ar discuzX2/images back/home/wwwroot/discuzX2/
#mkdir back/home/wwwroot/discuzX2/uc_server
#mkdir back/home/wwwroot/discuzX2/uc_server/data
#cp -ar discuzX2/uc_server/data/avatar back/home/wwwroot/discuzX2/uc_server/data/
#cp -ar discuz6.0/attachments back/home/wwwroot/discuz6.0/
#cp -ar discuz6.0/customavatars back/home/wwwroot/discuz6.0/
#cp -ar discuz6.0/sound back/home/wwwroot/discuz6.0/
#cp -ar wordpress3.8.1/image back/home/wwwroot/wordpress3.8.1/
#cp -ar wordpress3.8.1/images back/home/wwwroot/wordpress3.8.1/
#mkdir back/home/wwwroot/wordpress3.8.1/wp-content
#cp -ar wordpress3.8.1/wp-content/uploads back/home/wwwroot/wordpress3.8.1/wp-content/

# 以下三行是备份数据库

#mysqldump -u root -p discuz6.0 |gzip > back/home/wwwroot/discuz6.0/discuz6.0.sql.gz
#mysqldump -u root -p discuzX2 |gzip > back/home/wwwroot/discuzX2/discuzX2.sql.gz
#mysqldump -u root -p WordPress3.8.1 |gzip > /back/home/wwwroot/wordpress3.8.1/WordPress3.8.1.sql.gz
#tar -czvf back.tar.gz tack\

# 打包数据

#scp back.tar.gz root@8.8.8.8:/tmp/

# 将数据scp传输到另一个vps,免得下载到本地以及恢复时候还要上传,速度非常慢.
#Reinstall

重装服务器后进入干净的vps服务器,第一步我们首先是要安装kloxo-mr,这里我利用BuyVM的kloxo-mr升级和安装脚本加上以前网站流传的kloxo简体中文语言包制作成了一个kloxo-mr一键安装和安装简体中文语言包的脚本.地址随便用一个就可以了,只要能连接得通. kloxo-mr的语言切换方法和kloxo一样,可以搜索一下. 具体请见:http://www.myzhenai.com/thread-16146-1-1.html http://www.myzhenai.com.cn/post/1703.html

#wget http://www.myzhenai.com.cn/kloxo-mr/kloxoupgrade.sh.txt
#mv kloxoupgrade.sh.txt kloxoupgrade.sh
#sh kloxoupgrade.sh

OR

#wget http://jiayu.mybabya.com/kloxo-mr/kloxoupgrade.sh.txt
#mv kloxoupgrade.sh.txt kloxoupgrade.sh
#sh kloxoupgrade.sh

安装完kloxo-mr之后,我们需要做的是配置了,首先你要登录你的kloxo-mr,方法跟登录kloxo一样.切换到简体中文,修改你的kloxo登录密码,默认密码和用户名都是admin.然后新建一个dns模板,add域名里新建你的域名.mysql数据库里add mysql数据库增加数据库.切换程序里切换到你需要的网页服务器,我们这里以apache为例.然后在网页服务配置里切换你的网页程序配置,比如我在Php_branch里选择的是php54_ php类型里选择的是php-fpm_event.接着我们需要登录ssh终端,在终端里操作了.
linux本机:
#ssh 8.8.8.8
#Enter the password(不会有回显显示的)
windows本机
使用putty等ssh连接工具连接你的服务器.

#service hiawatha stop
#chkconfig hiawatha off
#sh /script/fix-all
#sh /script/cleanup
#sh /script/restart-all

# 如果发现没有作用,还是显示hiawatha默认错误页面的话,上边最后三行代码可以倒一倒,不一定要依照我的顺序.

到这一步证明kloxo-mr安装成功了,跟着我们可以开始着手安装网站数据了.先将我需要的三个源码文件下载到vps上.

#wget http://cn.wordpress.org/wordpress-3.8.1-zh_CN.tar.gz
#wget http://download.comsenz.com/DiscuzX/2.0/Discuz_X2_SC_UTF8.zip
#wget http://download.comsenz.com/Discuz/6.0.0/Discuz_6.0.0_SC_UTF8.zip
#scp root@8.8.8.8:/tmp/back.tar.gz /tmp/
#cd /tmp/
#tar -zxvf back.tar.gz
#mv back/discuzX2 /home/wwwroot/
#mv back/discuz6.0 /home/wwwroot/
#mv back/wordpress3.8.1 /home/wwwroot/
#cd
#tar -zxvf wordpress-3.8.1-zh_CN.tar.gz
#cp -ar wordpress/* /home/wwwroot/wordpress3.8.1/
#unzip Discuz_X2_SC_UTF8.zip -d Discuz
#cp -ar Discuz/upload/* /home/wwwroot/discuzX2/
#rm -rf Discuz
#unzip Discuz_6.0.0_SC_UTF8.zip -d Discuz
#cp -ar Discuz/upload/* /home/wwwroot/discuz6.0/

# 因为怕解压缩到指定目录时目录结构会错误,所以我tar时没有加-C参数,而是mv.

到这一步网站数据全部被复制到相应目录了,接下来的就是配置数据库密码和安装网站了. 安装相应的网站请看网站源码文件压缩包里的readme文档.安装完网站后我们要做的就是恢复mysql数据库数据了,(恢复这一步一定要等安装网站后才能进行恢复,不然数据库会被安装程序重写).

#gzip -d discuz6.0.sql.gz
#gzip -d discuzX2.sql.gz
#gzip -d WordPress3.8.1.sql.gz
#mysql -u root -pmysqlPassword --default-character-set=utf8 discuz6.0<discuz6 .0.sql
#mysql -u root -pmysqlPassword --default-character-set=utf8 discuzX2<discuzX2.sql
#mysql -u root -pmysqlPassword --default-character-set=utf8 WordPress3<WordPress3.8.1.sql

# 代码格式是 mysql -u 用户名 -p密码 –default-character-set=备份的数据库字符集 数据库名称< 备份的数据库文件名 重装完成了,剩下的就是慢慢配置和设置网站了.接下来就是优化vps和kloxo-mr了.

#iptables -F
#wget http://jiayu.mybabya.com/kloxo-mr/iptables.sh.txt
#mv iptables.sh.txt iptables.sh
#sh iptables.sh
</discuz6>

OR

#iptables -F
#wget http://www.myzhenai.com.cn/kloxo-mr/iptables.sh.txt
#mv iptables.sh.txt iptables.sh
#sh iptables.sh
#mv /usr/local/lxlabs/kloxo/httpdocs/login /usr/local/lxlabs/kloxo/httpdocs/nimeihaoma

# 以上这个是配置iptables防火墙拦截一些发广告的ip地址.最后那条mv命令是将kloxo-mr或kloxo的登录页目录改名,打开会显示404,以后有需要的时候只要反着再mv一次就可以了.

到这里是重装好系统和网站数据了,但是繁锁的工作还完全没有结束,我还要配置vps,优化vps.还要设置网站. 希望这些方法能对大家有所帮助.

wordpress登录cookies被阻止的解决方法

星期日, 二月 9th, 2014

最近折腾升级kloxo-mr整出一大堆问题. 博客登录提示 错误:Cookies被阻止或者您的浏览器不支持。要使用WordPress,您必须启用cookies。
但是另外一个VPS上也是使用kloxo-mr,也有一个wordpress,但是那个就没有这个问题.

wordpress 登录 cookies 阻止 解决 方法

wordpress登录cookies被阻止的解决方法


参照wordpress啦的说法:http://www.wordpress.la/codex-WordPress%E7%99%BB%E5%BD%95%E9%97%AE%E9%A2%98.html
1:本地浏览器没有做过变动,也没有禁止任何cookies
2:删除插件目录plugins没有解决问题
3:重新上传了一遍官方同版本安装包覆盖旧文件,没有解决问题.
4:用户名和密码是正确的,出于防止其他人修改密码造成的,我也修改了一遍密码.同样没有解决问题.
5:网站URL重定向规则是正确的,规则文件我同样有备份,网站文件路径也没有做过修改.
6:检查防火墙设置是正确的,没有禁止本地IP.service iptables stop同样也没有效果.
解决问题的方法非常简单:
将根目录下的wp-config.php删除并打开网页,被要求重新生成一个wp-config.php即正常了.如果wordpress语言变成了英文件,请打开wp-config.php 找到 define(‘WPLANG’, ”); 更改为 define(‘WPLANG’, ‘zh_CN’);

不用插件实现WordPress随机自动变换头像的方法

星期四, 十月 24th, 2013

/* 原创内容,转载请注明出处:http://www.myzhenai.com/thread-15963-1-1.html */
关键字:WordPress 头像 自定义 随机 自动更换
我是php初学者,闲来无事拿WordPress练手的,所以高手请不要见笑了.网上有很多自定义WordPress头像的方法,但缺点是只能有一张图片,如果想要多张图片做为头像并且自动变换的方法一直没有.我是看着php中文文档自己折腾一晚上才设置成功的,不需要插件,只不过是要修改几个文件里的一些代码来实现.我的想法是用数组来对应目录下的相关图标文件实现,方法其实很简单.步骤如下
1:准备一组图片,准备做为头像使用的,例如我的就准备了15张图片,分别将图片名称修改为avatar0.png avatar1.png avatar2.png….的顺序.在服务器根目录新建一个/images/avatar/两级目录,将所有图片上传到/images/avatar/下.
2:操作之前请备份好你的相关文件,即需要修改的两个文件./wp-includes/pluggable.php /wp-admin/options-discussion.php
3:用UltraEdit或gedit等文本编辑器打开这两个文件. 查找 get_avatar

/wp-admin/options-discussion.php

$avatar_list .= preg_replace("/src='(.+?)'/", "src='\$1'", $avatar);

替换

$avatar_list .= preg_replace("/src='(.+?)'/", "src='\$1&amp;forcedefault=1'", $avatar);

/wp-includes/pluggable.php

if ( !function_exists( 'get_avatar' ) ) :
/**
 * Retrieve the avatar for a user who provided a user ID or email address.
 *
 * @since 2.5
 * @param int|string|object $id_or_email A user ID,  email address, or comment object
 * @param int $size Size of the avatar image
 * @param string $default URL to a default image to use if no avatar is available
 * @param string $alt Alternative text to use in image tag. Defaults to blank
 * @return string <img /> tag for the user's avatar
*/
function get_avatar( $id_or_email, $size = '96', $default = '', $alt = false ) {
$Picture = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); /* 新建一个数组,有15个键名 */
$Random = array_rand($Picture); /* 随机选择数组里的一个键名 */
$host = "http://jiayu.mybabya.com/images/avatar/avatar"; /* 设置一个文本变量,内容是网址. */
$Suffix = "png"; /* 设置一个文本变量,内容是后缀名,php中变量相加采用. 例如 $host.$Random.$Suffix */
	if ( ! get_option('show_avatars') )
		return false;

	if ( false === $alt)
		$safe_alt = '';
	else
		$safe_alt = esc_attr( $alt );

	if ( !is_numeric($size) )
		$size = '96';

	$email = '';
	if ( is_numeric($id_or_email) ) {
		$id = (int) $id_or_email;
		$user = get_userdata($id);
		if ( $user )
			$email = $user->user_email;
	} elseif ( is_object($id_or_email) ) {
		// No avatar for pingbacks or trackbacks
		$allowed_comment_types = apply_filters( 'get_avatar_comment_types', array( 'comment' ) );
		if ( ! empty( $id_or_email->comment_type ) && ! in_array( $id_or_email->comment_type, (array) $allowed_comment_types ) )
			return false;

		if ( !empty($id_or_email->user_id) ) {
			$id = (int) $id_or_email->user_id;
			$user = get_userdata($id);
			if ( $user)
				$email = $user->user_email;
		} elseif ( !empty($id_or_email->comment_author_email) ) {
			$email = $id_or_email->comment_author_email;
		}
	} else {
		$email = $id_or_email;
	}
		$default =  str_replace("avatar.","avatar","$host.$Random.$Suffix"); 

	if ( !empty($email) ) {
		$avatar = "<img alt='{$safe_alt}' src='{$default}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' />";
	}

	return apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt);
}

替换掉

if ( !function_exists( 'get_avatar' ) ) :
/**
 * Retrieve the avatar for a user who provided a user ID or email address.
 *
 * @since 2.5
 * @param int|string|object $id_or_email A user ID,  email address, or comment object
 * @param int $size Size of the avatar image
 * @param string $default URL to a default image to use if no avatar is available
 * @param string $alt Alternative text to use in image tag. Defaults to blank
 * @return string <img /> tag for the user's avatar
*/
function get_avatar( $id_or_email, $size = '96', $default = '', $alt = false ) {
	if ( ! get_option('show_avatars') )
		return false;

	if ( false === $alt)
		$safe_alt = '';
	else
		$safe_alt = esc_attr( $alt );

	if ( !is_numeric($size) )
		$size = '96';

	$email = '';
	if ( is_numeric($id_or_email) ) {
		$id = (int) $id_or_email;
		$user = get_userdata($id);
		if ( $user )
			$email = $user->user_email;
	} elseif ( is_object($id_or_email) ) {
		// No avatar for pingbacks or trackbacks
		$allowed_comment_types = apply_filters( 'get_avatar_comment_types', array( 'comment' ) );
		if ( ! empty( $id_or_email->comment_type ) && ! in_array( $id_or_email->comment_type, (array) $allowed_comment_types ) )
			return false;

		if ( !empty($id_or_email->user_id) ) {
			$id = (int) $id_or_email->user_id;
			$user = get_userdata($id);
			if ( $user)
				$email = $user->user_email;
		} elseif ( !empty($id_or_email->comment_author_email) ) {
			$email = $id_or_email->comment_author_email;
		}
	} else {
		$email = $id_or_email;
	}

	if ( empty($default) ) {
		$avatar_default = get_option('avatar_default');
		if ( empty($avatar_default) )
			$default = 'mystery';
		else
			$default = $avatar_default;
	}

	if ( !empty($email) )
		$email_hash = md5( strtolower( trim( $email ) ) );

	if ( is_ssl() ) {
		$host = 'https://secure.gravatar.com';
	} else {
		if ( !empty($email) )
			$host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash[0] ) % 2 ) );
		else
			$host = 'http://0.gravatar.com';
	}

	if ( 'mystery' == $default )
		$default = "$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}"; // ad516503a11cd5ca435acc9bb6523536 == md5('unknown@gravatar.com')
	elseif ( 'blank' == $default )
		$default = $email ? 'blank' : includes_url( 'images/blank.gif' );
	elseif ( !empty($email) && 'gravatar_default' == $default )
		$default = '';
	elseif ( 'gravatar_default' == $default )
		$default = "$host/avatar/?s={$size}";
	elseif ( empty($email) )
		$default = "$host/avatar/?d=$default&amp;s={$size}";
	elseif ( strpos($default, 'http://') === 0 )
		$default = add_query_arg( 's', $size, $default );

	if ( !empty($email) ) {
		$out = "$host/avatar/";
		$out .= $email_hash;
		$out .= '?s='.$size;
		$out .= '&amp;d=' . urlencode( $default );

		$rating = get_option('avatar_rating');
		if ( !empty( $rating ) )
			$out .= "&amp;r={$rating}";

		$avatar = "<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
	} else {
		$avatar = "<img alt='{$safe_alt}' src='{$default}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' />";
	}

	return apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt);
}

保存并上传文件到对应目录覆盖原文件即可.
或者修改你当前主题目录下的functions.php文件,在里边的?>之内添加上以下代码,然后再登录wordpress后台\设置\讨论\头像\默认头像(选中)

/* 自定义头像图标,自动切换头像代码 */
add_filter( 'avatar_defaults', 'default_avatar' );
function twentyten_default_avatar ( $avatar_defaults ) {
    $Picture = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); /* 新建一个数组,有15个键名 */
    $Random = array_rand($Picture); /* 随机选择数组里的一个键名 */
    $host = "http://jiayu.mybabya.com/images/avatar/avatar"; /* 设置一个文本变量,内容是网址. */
    $Suffix = ".png"; /* 设置一个文本变量,内容是后缀名,php中变量相加采用. 例如 $host.$Random.$Suffix */
    $myavatar = get_bloginfo($host.$Random.$Suffix);    //默认图片路径
    $avatar_defaults[$myavatar] = "默认头像";    //后台显示名称
    return $avatar_defaults;
}
/* 自定义头像图标,自动切换头像代码 */

教程结束,完美实现了WordPress随机头像自动变换功能.大家不妨都试试吧. 效果演示:http://jiayu.mybabya.com/

/* 原创内容,转载请注明出处:http://www.myzhenai.com.cn/post/1593.html */

插件 实现 WordPress 随机 自动 变换 头像 方法

不用插件实现Wordpress随机自动变换头像的方法


插件 实现 WordPress 随机 自动 变换 头像 方法

不用插件实现Wordpress随机自动变换头像的方法


插件 实现 WordPress 随机 自动 变换 头像 方法

不用插件实现Wordpress随机自动变换头像的方法


插件 实现 WordPress 随机 自动 变换 头像 方法

不用插件实现Wordpress随机自动变换头像的方法


插件 实现 WordPress 随机 自动 变换 头像 方法

不用插件实现Wordpress随机自动变换头像的方法


插件 实现 WordPress 随机 自动 变换 头像 方法

不用插件实现Wordpress随机自动变换头像的方法


插件 实现 WordPress 随机 自动 变换 头像 方法

不用插件实现Wordpress随机自动变换头像的方法


插件 实现 WordPress 随机 自动 变换 头像 方法

不用插件实现Wordpress随机自动变换头像的方法

WordPress中URL地址自动生成超链接的方法

星期六, 十月 12th, 2013

在WordPress里写文章的时候,有时候会需要添加一些URL地址。
但是WordPress并不能自动识别这个地址,所以显示给读者的只是一个普通文本形式的URL地址,通常我们需要通过所见即所得编辑器来给这个地址添加超链接。
不过实际上WordPress提供了一个可识别URL地址的函数——make_clickable,只要激活这个函数,当你再次输入URL地址时,读者看到的就是一个带有超链接的URL地址了。
打开functions.php文件,在里面加上:
add_filter(‘the_content’, ‘make_clickable’);函数就激活成功了。这个函数可以将URL、www、ftp以及E-mail地址转换成超链接形式。

WordPress URL 地址 自动 生成 超链接 方法

WordPress中URL地址自动生成超链接的方法