据WordPress官方博客报道,WordPress已经正式支持了PubSubHubbub(有些人称其为PuSH),这种更新方式可以在谷歌阅读器中实时阅读到用户的博客更新,在大多数情况下,用户点完发布按钮,支持PubSubHubbub的系统(如Google Reader、FeedBurner等)就可以自动获取更新的RSS内容。
现在,在WordPress.com上托管的1050万个博客已经自动支持PuSH了,其工作模式是后台自动执行,用户不用做任何配置即可使用,实现了实时RSS的功能。
对于使用WordPress.org的程序自己搭建博客的用户,WordPress也推出了一款官方的PuSH插件:PuSHPress,推荐大家使用这个官方插件来支持PubSubHubbub功能。
除此之外,Wordpress.com目前的博客功能也很强大,支持邮件发布文章(工具 - Post by Email)和Google Webmaster验证(工具 - Webmaster Tools Verification),要是能支持免费域名绑定的话,那就可以完全抛弃Google Blogger了。
既然WordPress.com支持PuSH,而且支持邮件发布和Google Webmaster验证,那么用户现在可以发送全文邮件到自己的WordPress实时通过邮件发布全文的Buzz了。此外,由于ping.fm支持Wordpress.com的更新,因此可以通过Twitter - GAE - ping.fm - Wordpress.com - Google Buzz的方法实现实时同步Twitter信息到Buzz,这个方法不用输入Google账户的密码,有效的保护了Google账户的安全,且同步速度非常快。感谢Google的PubSubHubbub协议。
PubSubHubbub项目是Google的工程师开发的一种协议,可以在ATOM和RSS更新的时候,订阅者能实时得到更新,实现一种基于RSS Feed的类似Twitter的实时效果。
另求证一下,我这里好像可直接访问WordPress.com的博客,例如 williamlong.wordpress.com ,其他人也可以吗?
本文来自: Wordpress的RSS“实时”了
WordPress系统的用户密码是保存在wp_users数据表的user_pass字段,密码是通过Portable PHP password hashing framework类产生的,密码的形式是随机且不可逆,同一个明文的密码在不同时间,产生的密文也不一样,相对来说较为安全。
WordPress用户密码产生的过程是,当需要生成用户密码的时候,随机产生了一个salt,然后将salt和password相加,又进行了count次md5,最后和encode64的hash数值累加,就得到了一个以$P$开头的密码,这个密码每次产生的结果都不一样,下面就是产生WordPress密码的代码,将其放在WordPress根目录下,就可以生成一个加密的password,用这个密码替换掉wp_users数据表的user_pass字段即可修改密码。
<?php
$password = ‘abc’;
global $wp_hasher;
if ( empty($wp_hasher) ) {
require_once( ‘./wp-includes/class-phpass.php’);
$wp_hasher = new PasswordHash(8, TRUE);
}
echo $wp_hasher->HashPassword($password);
?>
不过,修改WordPress用户密码还有更简单的方法,就是直接将wp_users数据表的user_pass字段修改为32位的md5(passowrd)即可修改密码为password,这样的密码形式当然不是很安全,所以,当这个用户在WordPress登录后,系统会自动将MD5密码修改为以$P$开头的密码。
WordPress的这种支持简单md5格式的密码使得其他系统(例如Ucenter系统)的用户整合WordPress更为简单。
本文来自: WordPress用户密码算法规则
WordPress有一个很有用的功能,就是在线编辑主题功能,在多人博客WordPress MU中,这一功能因为安全性问题而被禁用,这里有一个方法,可以变相开通这一功能,而又不至于影响整个系统的安全性。
具体的方法是,在最新的WordPress MU 2.8.4版本中,打开wp-admin\include\mu.php文件,搜索unset( $submenu['themes.php'][10] );一行,将其注释掉。
接着,搜索if ( strpos( $_SERVER['PHP_SELF'], $page ) ) {一行,将这一行代码修改为if ( strpos( $_SERVER['PHP_SELF'], $page ) && !is_site_admin() ) {,保存退出。
经过这样的修改,WordPress MU就可以使用在线编辑主题功能了,并且只有WPMU的管理员可以使用,其他普通用户没有权限使用,他们打开theme-editor.php时会提示“页面已被管理员禁用”,从而保证了整个系统的安全性。
本文来自: WordPress MU编辑主题功能
Wordpress MU是Wordpress的多用户版本,因为程序结构的关系,Wordpress MU并不一定能兼容Wordpress的插件。WordPress MU有全局的插件和针对单个站点的插件,分别存放在不同的目录。/wp-content/mu-plugins/ 目录下存放的是全局的插件,无需逐个博客激活插件,默认就已经自动调用。/wp-content/plugins/ 目录下存放的是分站点的插件,只针对单个站点有效,这类插件和WordPress的插件基本兼容。
对于WordPress MU全局插件,通常是管理员设置的,有很多种不同类型,我这里介绍十个我个人感觉最为常用的全局插件,供广大网站管理员们参考。
Plugin Commander - 这个插件能在全站范围内自动启用和禁用分站点的插件,几乎是每个人都需要的功能,实际上,这个插件的部分功能已经在最新的WordPress MU中实现了。
Limit Revisions - 限制文章修订和自动保存功能,WordPress 2.6后增加的Post Revisions实在是个令人讨厌的功能,以至于禁用这项功能的插件都会成为必备插件。
Menus - 可以让网站管理员启用或禁用全站的某些菜单选项。
New Blog defaults - 这个插件能为所有的新建博客设置一个默认的主题和一些默认的功能设置。
Farm‘s Comment spam pack - 防范垃圾留言和垃圾博客就全靠这个插件了。
Sitewide Tags - 整站标签插件,可以得到一个全站范围内的标签云和相关文章。
Multi DB - 对于大型博客网站来说,多数据库插件是必然的,否则你的系统会死的很难看。
AHP Sitewide Recent Posts for WPMU - 获取全站范围的最新文章插件。
WPMU for Dummies: Part Deux - 老鸟可以忽略这个插件,不过对于新手来说,这个插件可以让你的WPMU管理更为方便。
好了,以上就是十个潮涌的WPMU插件,如果你还知道什么其他好用的WPMU插件,请留言告诉我。(via)
本文来自: 十大WordPress MU管理员插件
WordPress系统使用时间长了,数据库中的冗余数据就会很多,定期优化和清理Wordpress的数据库,可以保证Wordpress能够快速工作。
首先,停用一些无用的插件,将WordPress系统表之外的数据表都删除,只保留wp_posts, wp_comments, wp_terms, wp_term_relationships, wp_term_taxonomy 等系统数据表。
其次,打开phpMyadmin,通过SQL语句进行冗余数据删除操作。删除前记得先备份一下。
删除脚本是:
DELETE FROM wp_posts WHERE post_type = ‘revision’;
DELETE FROM wp_postmeta WHERE meta_key = ‘_edit_lock’;
DELETE FROM wp_postmeta WHERE meta_key = ‘_edit_last’;
最后,在phpMyAdmin中,选中所有表,点“优化表”。
经过这一番优化操作,就可以将WordPress数据库中的冗余数据删除,优化了数据库的性能。
以上操作,需要用户懂一些SQL语句,不要进行误操作,如果用户SQL比较熟的话,还可以看看这篇文章《八个有用的WordPress的SQL语句》。
本文来自: Wordpress数据库优化技巧
我以前曾经介绍过将Z-Blog数据库转换到WordPress的SQL语句,做为反例,还会有从WordPress系统转换到Z-Blog系统的SQL语句,这是一个比较奇怪的话题,估计也很少有人这么做,不过对于某些特殊情况,我们有可能会将WordPress数据库转换到Z-Blog的Access数据库,这里我介绍一下手动使用SQL语句进行转换的方法。
首先在WordPress中建立一个和Z-Blog文章表、目录相同结构的表,建立的SQL语句如下:
CREATE TABLE blog_Article (
log_ID int NOT NULL ,
log_CateID int NULL ,
log_AuthorID int NULL ,
log_Level int NULL ,
log_Url varchar (255) NULL ,
log_Title varchar (255) NULL ,
log_Intro longtext NULL ,
log_Content longtext NULL ,
log_IP varchar (15) NULL ,
log_PostTime datetime NULL ,
log_CommNums int NULL ,
log_ViewNums int NULL ,
log_TrackBackNums int NULL ,
log_Tag varchar (255) NULL ,
log_IsTop varchar (10) NOT NULL
) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE blog_Category (
cate_ID int NOT NULL ,
cate_Name varchar (50) NULL ,
cate_Order int NULL ,
cate_Intro varchar (255) NULL ,
cate_Count int NULL
) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
由于Z-Blog的数据库结构相对Z-Blog要复杂的多,因此转换之前还要进行一些目录ID的处理,其SQL语句如下:
update wp_posts, wp_term_relationships set wp_posts.post_category = wp_term_relationships.term_taxonomy_id where wp_posts.id=wp_term_relationships.object_id and wp_term_relationships.term_taxonomy_id in (select term_taxonomy_id from wp_term_taxonomy where taxonomy =’category’)
这个语句将目录ID保存到了wp_posts表中,这样以后转换会方便一些。
接下来,执行下面的语句,转换文章表结构。
INSERT INTO blog_Article (log_ID,log_CateID,log_AuthorID,log_Level,log_Url,log_Title,log_Intro,log_Content,log_PostTime,log_CommNums) select id, post_category, post_author, 4, id, post_title, post_excerpt, post_content, post_date, comment_count from wp_posts
转换成功后,我们需要安装一个MYSQL工具,名字叫MySQL ODBC Connector,安装完成后,在ODBC中建立一个MySQL的数据源。
最后,打开Access文件,点“获取外部数据”-“导入”,选择“ODBC数据库”中的MySQL数据源,导入blog_Article表即可,这样就可以将WordPress的文章内容导入到Z-Blog中了。
以上方法直接使用SQL语句转换数据库结构,适合大量数据的导入导出。少量数据可以通过导出XML文件的方式进行转换。
本文来自: 从WordPress转换到Z-Blog的方法
在过去的十年中,MySQL已经成为广受欢迎的数据库,而WordPress博客使用的是MySQL数据库,虽然使用插件可以解决一些问题,但是实现某些特殊任务的时候,在phpMyAdmin中执行SQL语句是最简洁的方法,这里就总结八个有用的WordPress系统的SQL语句,用于解决一些实际碰到的问题。
1、创建备份数据库
备份数据库是首先要做的事情,只需要通过以下方法就可以简单备份数据库:
登录phpMyAdmin后。选择你的WordPress数据库,然后点击“导出”按钮,选择一种压缩方式(可以使用gzip)并单击“执行”按钮,当浏览器提示是否下载的时候,点“是”,将数据库文件下载到本地。
2、批量删除文章修订
WordPress2.6以后的版本增加了一个Post revisions功能,虽然有点用,但文章修订增加了你数据库的大小,我们可以选择批量删除。
登录phpMyAdmin后执行下面的SQL语句即可批量删除。
DELETE FROM wp_posts WHERE post_type = "revision";
3、批量删除垃圾评论
一个真实的故事是,我的一个朋友在网上建立了一个博客,有次他花了几天时间外出度假,没有上网,当他回来的时候,登录自己的博客,看到有5000多条评论等待审核,当然,大多数都是垃圾评论,要手动删除这些评论要花大量时间,因此我们可以使用以下办法。
登录phpMyAdmin后执行下面的SQL语句。
DELETE from wp_comments WHERE comment_approved = ‘0′;
要小心,虽然这种解决方案对于处理数百万的垃圾平邮非常有用,但是也会清除未经批准的评论,因此最好还是安装使用Akismet来对付垃圾评论。
4、修改文章属性
你安装WordPress后,admin账户就创建了,不少人都错误的使用这个帐号来写博客,直到他们认识到,这并不是个人帐号。
解决的方法,每篇文章修改作者属性需要大量的时间,下面的这个SQL语句可以帮你快速完成这个功能。
首先你要找到你正确的用户名,使用下面的SQL语句可以找到你的用户ID号。
SELECT ID, display_name FROM wp_users;
假设这个ID为NEW_AUTHOR_ID,而管理员admin的ID为OLD_AUTHOR_ID,接着,运行下面的SQL语句。
UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;
5、手动重设密码
很多人为了保护自己的博客不被人黑掉,使用了很复杂的密码,这虽然是一件好事,但也经常会发生遗忘管理员密码的事情。
当然,通过电子邮件可以发送给你WordPress重设密码的链接,但如果你无法访问你的邮件地址,那么就只好使用下面的SQL语句来重设你的密码了。
UPDATE wp_users SET user_pass = MD5(’PASSWORD’) WHERE wp_users.user_login =’admin’ LIMIT 1;
MD5是MySQL内置的哈希函数,用于将密码转换为散列值。
6、更改WordPress的域名
你可能有时候会想要更改你博客的域名,但是WordPress会将你的域名存储在数据库中,因此你要使用下面的SQL语句来修改。
UPDATE wp_options SET option_value = http://www.williamlong.info/archives/replace(option_value,’http://www.oldsite.com’, ‘http://www.newsite.com’) WHERE option_name = ‘home’ OR option_name = ’siteurl’;
接着,你还要使用下面的SQL将文章的GUID也进行修改。
UPDATE wp_posts SET guid = replace(guid, ‘http://www.oldsite.com’,'http://www.newsite.com’);
最后,使用下面的语句将文章里所有旧域名替换为新域名。
UPDATE wp_posts SET post_content = replace(post_content, ‘http://www.oldsite.com’, ‘http://www.newsite.com’);
7、显示SQL查询数量
在你有话博客性能的时候,了解到查询数据库的数量是非常重要的,为了减少数据库查询,我们需要知道在一个页面上到底有多少个查询。
这一次,不需要登录phpMyAdmin了,你只需要修改footer.php文件,在文件结尾增加下面几行代码即可。
<?php if (is_user_logged_in()) { ?>
<?php echo get_num_queries(); ?> queries in <?php timer_stop(1); ?> seconds.
<?php } ?>
8、恢复你的WordPress数据库
当你的数据库因为某些原因(黑客或者升级错误)被损坏或者丢失了,如果你有备份的话,那可以恢复你的WordPress数据库。
登录phpMyAdmin,选择你的WordPress数据库,点“导入”按钮,点“浏览”按钮,然后从你的硬盘选择备份文件,点“执行”按钮就可以将数据库导入。
如果顺利的话,你的WordPress功能将会恢复正常。
英文原文:8 Useful WordPress SQL Hacks
中文翻译:William Long
中文译文:八个有用的WordPress的SQL语句
本文来自: 八个有用的WordPress的SQL语句
WordPress是目前世界上使用广泛的博客软件,比较容易受到各种攻击,因此WordPress安全性也是非常重要的,以下有10个安全技巧,可以帮助你轻松的解决WordPress安全性问题,以免你在WordPress的安全性上走更多的弯路。
1、升级WordPress到最新版本
一般来说,新版本的WordPress安全性都会比老版本要好一些,并且解决了已知的各种安全性问题,特别当遇到重大的版本升级时,新版本可能会解决更多的关键性问题。(例如老版本WordPress有remv.php重大漏洞,可能会导致遭受DDoS攻击,升级到最新2.7版本可解决这个问题)
2、隐藏WordPress版本
编辑你的header.php模板,将里面关于WordPress的版本信息都删除,这样黑客就无法通过查看源代码的防治得知你的WordPress有没有升级到最新版本。
3、更改WordPress用户名
每个黑客都知道WordPress的管理员用户是admin,具有管理员权限,会攻击这个用户,那么你需要创建一个新用户,将其设置为管理员权限,然后删除老的admin帐号,这就能避免黑客猜测管理员的用户名。
4、更改WordPress用户密码
安装好WordPress后,系统会发送一个随机密码到你的信箱,修改这个密码,因为这个密码的长度只有6个字符,你要将密码修改为10个字符以上的复杂密码,并尽量使用字母、数字、符号相混合的密码。
5、防止WordPress目录显示
WordPress会默认安装插件到/wp-content/plugins/目录下,通常情况下直接浏览这个目录会列出所有安装的插件名,这很糟糕,因为黑客可以利用已知插件的漏洞进行攻击,因此可以创建一个空的index.html文件放到这个目录下,当然,修改Apache的.htaccess文件也可以起到相同的作用。
6、保护wp-admin文件夹
你可以通过限定IP地址访问WordPress管理员文件夹来进行保护,所有其他IP地址访问都返回禁止访问的信息,不过你也只能从一两个地方进行博客管理。另外,你需要放一个新的.htaccess文件到wp-admin目录下,防止根目录下的.htaccess文件被替换。
7、针对搜索引擎的保护
很多WordPress系统文件不需要被搜索引擎索引,因此,修改你的robots.txt文件,增加一行Disallow: /wp-*
8、安装Login Lockdown插件
这个插件可以记录失败的登录尝试的IP地址和时间,如果来自某一个IP地址的这种失败登录超过一定条件,那么系统将禁止这一IP地址继续尝试登录。
9、WordPress数据库安全
数据表最好不要使用默认的wp_开头,安装数据库备份插件,无论做了多少保护,你还是应该定期备份你的数据库,使用WordPress Database Backup等插件可以实现数据库的定期备份。
10、安装Wordpress Security Scan插件
这个插件会自动按照以上的安全建议对你的WordPress进行扫描,查找存在的问题,使用较为简单。
英文原文:Top Ten Wordpress Security Tips
中文译文:十大WordPress安全设置技巧
本文来自: 十大WordPress安全设置技巧
