wordpress支持php7

php7已经release很长时间了,据说性能提升很大,正好这两天蚊子的blog出现了性能的问题,于是就考虑将原来的php5升级到php7,以减少php-fpm的负载。结果在升级的过程中,确实也是遇到了一些问题。下面把我的升级过程大概记录下来,以方便有需要的朋友避免采坑。在线升级有风险,请做好备份。php7性能可以看看这篇文章。 做好备份工作后,就开始我们的升级之旅吧。首先要安装php7的包,蚊子的系统是ubuntu14.04,添加php7的repo

 

接下来你会看到PPA的一段描述,紧接着会有继续的提示,直接点击“回车”键即可。

repo安装好了,接下来更新package cache。

 

接下来安装php7的包

Continue reading “wordpress支持php7”

Back To Top返回顶部插件

近期,学习了一下wordpress的插件开发,也算是小有成就吧,完成了返回顶部这样的一个插件。

功能

本插件模仿新浪微博中的返回顶部样式所做,为了方便访问者轻松的返回到博客的顶部而开发,有此需求的朋友可以拿来使用,并留下你们宝贵的意见和建议,来帮助蚊子完善这款插件。

适用版本

本插件在wordpress3.2.1下完成,低版本希望有人测试后给与反馈。 Continue reading “Back To Top返回顶部插件”

关闭WordPress自动修订和自动保存功能[转]

最近蚊子发布的一些文章的postid好多都不挨着,看着让我很不爽,网上查了一下,原因如下

    1、日志的自动修订功能Revision占用ID;

    2、日志的自动保存功能也占用ID;

    3、利用系统上传的图片附件要占用ID,如果上传多个图片,都要占用ID的;

第3条图片附件占用ID的问题在系统内部是无法解决的,除非不上传附件,最好的办法就是外链,把图片上传到别的地上,调用到日志里。
本文就是要介绍一下关闭自动修订功能和自动保存功能的解决办法:

一、关闭自动修订功能解决办法:

但是当你有一定数量的文章,而不需要保存修订记录时,修订记录就反而成为了增加数据库负担的一个功能。当然有现成的插件可以帮你关闭并删除修订记录的功 能,这里简单介绍一些不用插件的办法。打开安装目录下的 wp-config.php 并找到这行:

require_once(ABSPATH . ‘wp-settings.php’);

在这行前面的任意地方,甚至可以是文件的开头,加入:

define(‘WP_POST_REVISIONS’, false);

保存之后,自动修订功能就关闭了。

二、关闭自动保存功能解决办法:
事实上自动保存功能也会在数据库内部产生修订记录。如果不通过插件或者修改程序代码的话,标准的WordPress是无法真正的关闭自动保存功能的,但是允许你设置每次自动保存的间隔。因此你可以设置个一天的,找到wp-settings.php文件,找到

define( ‘AUTOSAVE_INTERVAL’, 60 );

把自动保存时间改为一天:

define(‘AUTOSAVE_INTERVAL’, 86400 );

或改为一年:

define(‘AUTOSAVE_INTERVAL’, 31536000 );

这样就实现了在短时间无法自动保存的目的,同时也不会产生修订记录了。

附:如果你原插件不反感,你可以使用Super Switch超级开关插件简单实现自动保存功能的关闭。

如果想在这个点上达到最大程度优化,你也可以删掉原有的修订记录,只要连进数据库并按顺序运行以下SQL语句:

DELETE FROM wp_postmeta WHERE post_id IN (SELECT id FROM wp_posts WHERE post_type = "revision");
DELETE FROM wp_term_relationships WHERE object_id IN (SELECT id FROM wp_posts WHERE post_type="revision");
DELETE FROM wp_posts WHERE post_type = "revision";

这样,就把以前的修订记录清理干净了。

原文:http://www.xbaidu.net/227.htm

博客支持手机浏览

今早蚊子来,看到google订阅中有人推荐wordpress的插件,其中有个插件叫MobilePress,它首先通过浏览器的 User-Agent 判断出用户是否使用手机在浏览你的 WordPress 博客,然后它会给博客更换一款适合手机浏览的主题,让手机用户更好的浏览博客。

MobilePress 安装和使用

MobilePress 安装非常简单,只要上传激活即可,也可以通过 WordPress 后台直接安装。

安装好 MobilePress 之后,在 WordPress 后台主菜单就多了一个 MobilePress 的菜单,他有两个子菜单:

  1. Options

    • 这里的 Blog Title 和 Blog Description 是让你给手机版本的博客设置一个博客标题和描述,留空使用原来默认已经设置好的博客标题和描述。

    • Force Mobile Site? 强制使用手机版,即使使用普通浏览器浏览也会显示适合手机浏览的主题。一般选择 no 了,普通浏览器用户还是希望给他看到更多精彩的展示。

  2. Theme

    目前只有两种,default1.0和iphone1.0,在蚊子看了,这两个目前没有什么分别

和Hyper Cache配合使用

如果你和蚊子我一样也是使用了Hyper Cache这款插件,那你需要开启插件中的Configuration for mobile devices选项下的Detect mobile devices

让wordpress正确记录访客IP地址

这两天blog恢复,兴奋之余,发现,访客的留言ip都是proxy的地址,而不是真实的ip地址,于是打印了一下$_SERVER信息,看到$_SERVER[‘REMOTE_ADDR’]本应该是访客ip的,结果却变成了proxy的地址,这个不是我们需要,同时发现在$_SERVER中包含了HTTP_X_FORWARDED_FOR字段,而且wordpress使用的是REMOTE_ADDR字段值,那就好办了,使用如下代码,就可以将真是的访客地址拿到

if(isset($_SERVER[‘HTTP_X_FORWARDED_FOR’]))
{
$list = explode(‘,’,$_SERVER[‘HTTP_X_FORWARDED_FOR’]);
$_SERVER[‘REMOTE_ADDR’] = $list[0];
}

把上面这段代码加入到wp-config.php的开头部分就可以了

因为X-Forwarded-For头的记录格式是:client1,proxy1,proxy2,所以在上面的代码中我们取的是第一个值。

参考:http://www.onono.org/2009/07/181.htm

WordPress代码高亮插件WP-Syntax[转]

给自己的BLOG加上了代码的语法高亮这插件,对比了好几个类似的插件,觉得这个还是不错的,并且还加上了CSS显示更好看些了,现在转载记录下,以备切换之用。另外注意的事不要设置line为1 即为显示行号,因为我的首页的摘要会出现问题。

下载地址:http://wordpress.org/extend/plugins/wp-syntax/

安装

  1. Upload wp-syntax.zip to your WordPress plugins directory, usually wp-content/plugins/ and unzip the file. It will create a wp-content/plugins/wp-syntax/ directory.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
  3. Create a post/page that contains a code snippet following the proper usage syntax.

写文章时,用 <pre> 和 </pre> 将代码包住即可。同时在<pre> 中指定参数 lang=”代码类型” ling=”起始行数”。
最后在使用的过程中注意 lang=”” 一定要使用双引号,而不能用单引号。

Usage(使用方法)

Wrap code blocks with <pre lang=”LANGUAGE” line=”1″> and </pre> where LANGUAGE is a GeSHi supported language syntax. See below for a full list of supported languages. The line attribute is optional.

Example 1: PHP, no line numbers

Example 2: Java, with line numbers

Example 3: Ruby, with line numbers starting at 18

Supported Languages(支持的语言)

The following languages are supported in the lang attribute:

abap, actionscript, ada, apache, applescript, asm, asp, autoit, bash, blitzbasic, bnf, c, c_mac, caddcl, cadlisp, cfdg, cfm, cpp-qt, cpp, csharp, css, d, delphi, diff, div, dos, dot, eiffel, fortran, freebasic, genero, gml, groovy, haskell, html4strict, idl, ini, inno, io, java, java5, javascript, latex, lisp, lua, m68k, matlab, mirc, mpasm, mysql, nsis, objc, ocaml-brief, ocaml, oobas, oracle8, pascal, per, perl, php-brief, php, plsql, python, qbasic, rails, reg, robots, ruby, sas, scheme, sdlbasic, smalltalk, smarty, sql, tcl, text, thinbasic, tsql, vb, vbnet, vhdl, visualfoxpro, winbatch, xml, xpp, z80

(Bold languages just highlight the more popular ones.)

Styling Guidelines

WP-Syntax uses default GeSHi colors by default. It also uses inline styling to make sure that code highlights still work in RSS feeds. To spruce up your code snippets to look more like the screenshots, try adding this CSS to your stylesheet template:
WP-Syntax 能够保留代码中的缩进(空格),让代码更加美观。不过,WP-Syntax高亮的代码默认不会进行拆行,如果代码过长的话,将会导致页面被撑大,影响美观。将如下 CSS 样式写入到所选择的主题样式中,能够解决这个问题:

 

Advanced Customization

WP-Syntax supports a wp_syntax_init_geshi action hook to customize GeSHi initialization settings. Blog owners can handle the hook in a hand-made plugin or somewhere else like this:

This allows for a great possibility of different customizations. Be sure to review the GeSHi Documentation.

转自:http://www.ohlinux.com/?p=188

blog首页显示恢复正常

这个周末,蚊子有空,折腾了一下我的blog,在多次对我用到的插件进行了安装–卸载–安装的过程之后,目前blog首页已经恢复正常了,无论是firefox,ie,还是google浏览器都显示正常了,看着整齐的首页,心里那叫一个美。

现在来说说问题吧,经过这顿折腾,发现是wp-kit-cn和Easy AdSense的冲突,在Easy AdSense中我开启了Lead-in AdSense文本  (显示在日志开始的位置)和日志 Lead-out AdSense 文字  (显示在日志结尾处),同时wp-kit-cn中我使用了摘要显示文章,结果就导致了第一篇文章显示不正常的缘故。

现在解决办法,停止使用wp-kit-cn插件,easy adsense保持不变,更换成了wp-limit-posts-automatically-cn这个插件,现在首页恢复正常。如果还有谁收到这个困扰,也许蚊子的方法可以帮你一下。

再次感谢关心我博客的朋友们,近来海底光缆断了导致本博访问变慢,真的对不住那些关心支持蚊子的童鞋们了。

[转]关闭WordPress日志修订功能

WordPress从2.6开始就有一个日志修订功能,对日志每修改一次,都会产生一个历史版本,感觉此功能对个人用户来说用途不大,反而加大了数据库的体积,影响BLOG的速度,解决办法如下:
如果你使用的是WordPress2.6版本,打开wp-config.php这个文件,找到

WP_POST_REVISIONS’ => true

这个变量有三个参数:
true, –1: 默认值,将存储文章每一次的修订;
false, 0: 不保存任何修订的版本,但自动保存功能依然有效;
>0 的整数: 最多保留的版本数量,超过此数的版本将被删除。

WordPress2.71用户可以打开wp-settings.php这个文件,修改方法同上。

但是已经产生的修订怎么去除呢?我们可以登录phpMyAdmin执行下面的SQL语句即可一次性删除:

DELETE FROM wp_posts WHERE post_type ="revision";

双引号必须是英文的,复制到SQL后可能会变成中文引号,请手动改一下。为了安全起见,最好先备份数据库。

转自布语博客:http://buyu.name/004.html

根据文章标题关键字添加相应的版权保护信息[原创]

一段时间来都是使用MagicPostsView Plugin 这个插件来添加的我blog里的版权信息,有兴趣的朋友可以到这里下载,但这个插件还是不能满足我的个人需要,因为我只希望我自己原创的技术文章加上相应的信息,看来只能自己想想办法了

既然wordpress的theme都是php写的,自然可以通过代码来实现,既然是通过文章标题的内容里的关键字,其实就是需要判断关键字是否存在,如果存在则添加相应的信息,如果不存在则不用加入信息。用到的php中的strpos()函数,因为单个文章调用的是single.php这个文件,所以只需要在这个文件中做做手脚就行了。下面看我的代码

<?php
 $grand_parent = get_page($post->post_parent);
 $post_link = get_permalink($grand_parent);
 $post_title=get_the_title($post->post_parent);
 $findstr=iconv(‘gb2312′,’utf-8′,'[原创]’);
 $pos=strpos($post_title,$findstr);
 if ($pos) {
  $isorg01='<p>’.'<B>’.iconv(‘gb2312′,’utf-8′,’本文作者:深夜的蚊子’).'</B>’.'<br />’;
  $isorg02='<B>’.iconv(‘gb2312′,’utf-8′,’本文链接:’);
  $isorg03='<B>’.iconv(‘gb2312′,’utf-8′,’版权所有。转载时请以链接形式注明作者和原始出处及本声明,谢谢’).'</B>’.'</p>’;
  $post_url='<a href="’.$post_link.’"title="’.$post_title.’">’.$post_link.'</a>’.'</B>’.'<br />’;
 }  
?>

以上代码只需要添加到页面的开头部分就行,这部分是用来判断文章中是否含有关键字的,我自己预设的是判断是否含有“[原创]”字样。各位可以根据自己的需求做相应的调整

以上代码添加完毕之后,就可以在你需要的地方添加调用了,我加在了发布日期那行信息的下面了,代码如下

<?php echo $isorg01 ?>
<?php echo $isorg02.$post_url ?>
<?php echo $isorg03 ?>
有了这段代码之后,就会根据上面的判断来进行输出显示了。
到此,我所做的调整就算完毕了,上传覆盖后就可以查看修改结果了,本人php说平有限,欢迎高手拍砖。