文章标签 ‘WordPress’
WordPress的每次请求都由缓存引擎处理。它会检查为这次请求准备的html是否还有效,如果有效,调用这个html,完事。Wordpress在进行任何操作前都会让缓存引擎过目,所以呢,用此插件之后,无任何插件参与,无数据库连接建立,无任何查询执行。
Hyper Cache 并没有完全脱离 WordPress,虽然它也会生成静态的页面(不是 HTML 网页,而是序列化后的二进制数据),但为了保证插件适用范围更广,Hyper Cache 仍然依赖于 WordPress 的插件机制,当有访问请求时,Hyper Cache 首先会检查是否生成了缓存,如果缓存存在,把二进制缓存数据反序列化并返回,否则生成缓存。
Hyper Cache插件的特点:
- 全新缓存系统,特别适合那些对资源要求比较苛刻的主机(cpu和mysql)。
- 与wp-pda插件兼容,该插件可使各种移动设备在一个广告优化的不同主题下访问你的Blog。
- 可同时处理普通和gzip压缩页面,减少带宽要求并使页面载入更快。
- 可在特定的间隔自动清除过期的缓存页面,减少空间占用。
- 未找到”的请求,Wordpress重定向请求和Feed请求均可缓存。
- 可很容易地翻译为其他语种,无需编译语言文件。
Hyper Cache插件安装:
- 进入wordpress后台,点击左侧菜单“插件”,再点击安装新插件,然后搜索插件hyper cache,点击搜索到的第一个“现在安装”,就完成插件的安装了,完成后,选择启用插件。
- 去wp-config.php文件中填上一行插件必备的(如上面所说,如果之前你用过WP Cache和WP Super Cache,你的wp-config.php文件中应该有这一行,那就不用填了;如果没有这行代码,请在<?php下添加):
define('WP_CACHE',true);
一直都在用wordpress的HTML编辑器,经常要添加链接,可是HTML编辑器里的添加链接按钮并没有“在另一窗口打开”这一选项。于是修改其js源码解决之。
方法如下:
打开wp-includes/js/quicktags.js,查找
1 | if(a){edButtons[c].tagStart='<a href="'+a+'">'; |
修改为:
1 | if(a){edButtons[c].tagStart='<a href="'+a+'" target="_blank">'; |
WordPress3.1版本发布有一段时间了。该版本不仅仅有自动保存历史版本的功能(通常都用不着,还会造成一些垃圾数据),还增加了一个自动保存草稿的功能。你每次点击”add new”时都会在post表中保存一条状态为“auto-draft”的后台不可见记录,同样会造成一些垃圾数据以及ID的不连续性。
为保证尽量减少数据库中的垃圾和保持日志ID的连续性,人们想了很多办法,各显神通。但大部分都是采用插件形式。插件形式仅仅能禁止日志的历史版本,却对自动插入的状态为”auto-draft”的记录无能为力。而且这种记录并不能在wordpress的后台看到。对于追求完美和有洁癖的人来说,这些记录实在是很烦人。
禁止自动生成 auto-draft 的不可见草稿:
在wp-admin/includes/post.php中,从第374行开始,有一个if判断,代码如下:
1 2 3 4 5 6 7 8 | if ( $create_in_db ) { // Cleanup old auto-drafts more than 7 days old $old_posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_status = 'auto-draft' AND DATE_SUB( NOW(), INTERVAL 7 DAY ) > post_date" ); foreach ( (array) $old_posts as $delete ) wp_delete_post( $delete, true ); // Force delete $post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) ); $post = get_post( $post_id ); } else { |
解释一下这段代码的功能,首先,清除七天以前的自动草稿,然后插入一条新草稿,如果你继续写文章并发布,那么这条草稿就被使用了,包括在后台首页有一个快速发布,也用到了这个。但如果你仅仅是点击了new post(添加文章),接下来没有输入任何内容就跳到别的页面去了或关闭了,此时仍然会生成一个自动草稿,而这个草稿,是后台不可见的,是垃圾数据。
所以修改了一下代码,将这个if判断中的内容替换成以下内容,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 | if ( $create_in_db ) { // modify by akii start global $current_user; $post_auto_draft = $wpdb->get_row( "SELECT * FROM $wpdb->posts WHERE post_status = 'auto-draft' AND post_author = $current_user->ID ORDER BY ID ASC LIMIT 1" ); if ($post_auto_draft){ $post = $post_auto_draft; } else { $post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) ); $post = get_post( $post_id ); } // modify by akii end } else { |
原理及说明:当数据库中有一条或多条状态为”auto-draft”的自动草稿时,取ID最小的,新文章即使用此条记录。如果没有此种类型的数据,才会新插入一条数据。并且查询数据时是根据当前的用户来判断,不会出现多用户时出错。这样就可以避免了自动草稿(auto-draft)的冗余垃圾数据。保证了日志ID的连续性。但最后我要提醒一句,如果你在日志中添加了附件,如图片,那么该图片也会占用一条数据,即一个连续的ID,所以,如果你以ID形式,发现日志有时候不是连续的ID了,那么,有可能是你日志的附件占用了临近的ID。
WordPress一个让人很蛋疼的功能在编辑文章的时候默认自动保存草稿,这一点会造成服务器的负担加重,影响网页加载速度,另外,产生的草稿文件也会使数据库过于庞大,维护不便。还会使得文章ID不连续,让人头疼。
在以前的版本使用Disable Autosave插件就可以搞定,现在3.0.1下不好使了。
解决方法:在wp-config.php文件中加入
1 2 | define('WP_POST_REVISIONS', false); define('AUTOSAVE_INTERVAL',999999999); |
这两行代码,然后编辑wp-admin/includes/post.php文件,在
1 | if ( $create_in_db ) { |
语句之前加入一行
1 | $create_in_db = false; |
搞定。
在这段wordpress建站历程中,曾经遇到这样类似的错误提示:
Fatal error: Allowed memory size of 33554432 bytes exhausted …
出现错误怎么办呢?逅客百度Google找寻了下,大概意思就是提示wordpress内存不足。根据问题导致原因所不同,大概有这么几个解决办法。
一、如果是php.ini中限制的(前提是空间支持ini):
1、首先在public_html 目录创建文件 php.ini,添加以下代码:
1 | memory_limit = 88M |
然后在根目录下修改.htaccess文件,添加下面代码:
1 | suPHP_ConfigPath /home/username/public_html/ |
2、同样是修改php.ini
先在网站根目录下,建立一个php.ini文件,写入下面这句:
1 | memory_limit = 88M |
接着再到网站根目录下修改.htaccess这个文件,写入下面这句:
1 | SetEnv PHPRC /home/host1/public_html/usr1/ |
(unix path to the directory where php.ini is)
(keep the slashes)
二、如果是因为wordpress插件安装过多导致的。一般停用一些wordpress插件即可解决问题。如果不想停用插件,也可以采取放宽内存限制的方法:
1、修改WP配置文件。
编辑wp-config.php这个文件,在加上一句:
1 | define('WP_MEMORY_LIMIT', '88M'); |
上面88M这个数字可根据情况修改为更大数值,比如168M。
2、打开wp-settings.php在第十三行找到如下语句:
1 | define('WP_MEMORY_LIMIT', '32M') |
将其中32修改为更大数值即可。
第一步、用photoshop等图形处理工具制作一个小日历效果的图标,一般为45*50,这个根据自己主题而定,上传到主题下的图片文件夹。

第二步、用EditPlus打开你所启用的主题的index.php文件。(ps:每次写文章,都要提到这一步,因为这步涉及到wordpress的编码问题,不得马虎。)找到标题这一行:
1 | <h2><a class="title" href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2> |
在这一行前插入以下代码:
1 2 3 4 | <div class="contentdate"> <h3><?php the_time('m'); ?> - <?php the_time('y'); ?></h3> <h4><?php the_time('d'); ?></h4> </div> |
这两行的含义请参考:wordpress中如何调用时间及时间格式汇总
第三步、接下了就是通过强大的css来控制这个能够让你的页面焕发盎然生机的WordPress标题小日历效果了。打开主题style.css,在其中加入一下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | /*标题日历图标*/ .contentdate { background: #FFFFFF url(img/date.gif); background-repeat: no-repeat; float: left; width: 40px; height: 45px; margin-right: 3px; padding: 0px; } .contentdate h3 { color: #FFFFFF; font-size: 11px; font-weight: normal; padding-top: 2px; text-align: center; margin: 0px; text-transform: uppercase; } .contentdate h4 { color: #999999; font-size: 18px; font-weight: bold; padding-top: 5px; margin: 0px; text-align: center; } |
搞定收工!
周数
W:ISO-8601格式年份中的第几周,每周从星期一开始(PHP 4.1.0新加入),例如:42(当年的第42周);
日
d:月份中的第几天,有前导零的两位数字,例如01 到 31;
D:星期中的第几天,以文本表示,截取对应英文名称的前三个字母,例如Mon到Sun;
j:月份中的第几天,没有前导零,例如1 到 31;
l(L的小写形式):星期几,完整的文本格式,例如Sunday到Saturday;
N:ISO-8601格式数字表示的星期中的第几天(PHP 5.1.0新加入),例如1(表示星期一) 到7(表示星期日);
S:每月天数后面的英文后缀,2 个字符,例如st,nd,rd和th,可以和j一起使用;
w(W的小写形式):星期中的第几天,数字表示,例如0(表示星期日) 到 6(表示星期六);
z(Z的小写形式):年份中的第几天,例如0 到 366;
阅读全文...

圆角导航栏标签
这里我们需要用到四张图片,其中各有两张用于当前导航栏状态和激活之后的导航栏状态样式。我将其命名为navleft,navright和avleft_active,navright_active.其中navright和navright_active应该足够长,以适应那些长的分类目录或者是分
类页面。
阅读全文...
这款插件是国人写的一款自动添加关键词链接的插件,内链优化这类的插件比较多,选这款的原因,主要考虑此插件是国人做的,应该为中文方面考虑的比较多,另外,此插件还具有如下特点。
WordPress keyword Link插件特点:
- 完美支持中文关键词链接,分别区分英文与中文关键词
- 修正编辑中文关键词时乱码问题
- 解决替换关键词已有链接的问题.文章中已有的链接将不会匹配.
- 解决与WordPress Wiki插件的冲突问题。
- 汉化了部分内容。
WordPress keyword Link插件安装:
- 下载WordPress keyword Link插件,将压缩包解压后,把文件夹上传到wp-content/plugins/目录下。
- 登录WordPress管理后台,点击“Plugins”找到上传的插件,激活该插件。
- 插件激活后,在“Settings”-->“WP KeywordLink”中进行相关设置。
- No Follow - 在链接加多一个属性:rel='no follow' ,使用Nofollow属性让搜索引擎不要抓取并追踪此链接.
- First Match Only - 仅仅匹配第一个关键词, 建议勾上.
- New Window - 在链接加上 target='_blank'的属性, 在新窗口打开.
- Ignore Case - 不匹分大小写,如"Google", "google" 或者 "gooGLE" 都会匹配到.英文关键词有效(不推荐使用)
- Is affiliate - 勾上表示内链,同外链区分,这里要添加下面提到的CSS样式。
- Filter in comments - 勾上匹配替换评论区里的关键词.
- For zh_CN - 勾上支持中文关键词. 英文关键词不推荐勾上。
设置好相关内容后,添加你博客的关键词和链接,那么,在你发布文章后,文章里的关键词,就会自动搜索匹配文章里的关键词。
点击下载:WP keyword Link插件下载地址
点击进入:WP keyword Link插件作者地址

