Archive for category WordPress

博客在傲游下源文件中文变乱码的解决

不小心看到别人博客上说我的源文件都是乱码,用傲游打开,果然中文全乱了,用IE则正常

其实原因很简单,编码问题,将index.php下载下来用UE保存为utf-8格式再传上去即可

字符编码的问题有时很恶心,但至今没全搞明白

  • Share/Bookmark

wordpress插件推荐

Visitor Maps and Who’s Online

作者为 Mike Challis

很强大的一个插件,类似于zen cart的who is online,但更强大点,有很多设置项

下载地址:Visitor Maps and Who’s Online

由于wordpress本身就很强大,所以可以在后台自己安装的

wordpress的插件真多,看得头晕,陆续挑些好的发表出来,日后整理

 

  • Share/Bookmark

Tags: , , , , , , ,

博客出了点小问题

刚想写点东西,却发现一点添加新文章就403错误(没太注意,应该是这个吧),而且造成这个IP上所有网站我都无法访问,等一两分钟又恢复,然后再点再403。。。

换了台电脑,同样是拨号的,只是有通过路由,而我是专线,所以IP是不一样的,操作即可成功

估计是电信发颠了,地址栏一出现post-new.php或page-new.php就帮我干掉了这个IP,应该是new这个字太敏感了,该死的国庆,整个国家都敏感了,希望我的猜测并不是对的

然后切到VPN线路,当时这个VPN服务器没配好,有时dns无法解析(似乎只有我的笔记本会这样),总之应该是配置有点问题吧,只能改本地host文件强制解析过去,然后操作博客就正常了,并且断开VPN后也仍然正常,my god!

以前也有出现类似问题,好像是oneworld这个字眼,也是直接被干掉IP,有坑啊,莫明其妙

这类,目前只能归为神秘事件了,暂时没搞明白

  • Share/Bookmark

Tags: , , , ,

wordpress自动升级时出现Allowed memory size of 33554432 bytes exhausted

今天把wordpress升级到2.8.4,出现如下错误

Allowed memory size of 33554432 bytes exhausted

还以为是php.ini搞的鬼,遂改大了这个值,还是没用

查了一下,才知道是wordpress配置里本身有这个限定,在wp-settings.php文件里

找到

define(’WP_MEMORY_LIMIT’, ‘32M’);//这是默认值

改为

define(’WP_MEMORY_LIMIT’, ‘64M’);//或更大的数值

即可

看来wordpress越来越庞大了,以前升级都不会有这种情况

  • Share/Bookmark

Tags: , , , , , ,

什么是TrackBack?

TrackBack是一种网络日志应用工具,它可以让网志作者知道有那些人看到自己的文章后撰写了与之有关的短文。在Movable Type和WordPress软件中,包含有该功能。这种功能通过在网志之间互相「ping」的机制,实现了网站之间的互相通告;因此,它也可以提供提醒功能。
  *TrackBack功能一般出现在一个网志文章的下方,同时会显示对方网志的摘要信息、URL和网志标题。
  *TrackBack规范由Six Apart在2000年制订,并在Movable Type2.2中予以实现。
  trackback (引用通告)
  trackback是现在WEB2.0的产物,BLOG成为WEB2.0的关键包括TRACKBACK的功能,原理如下:
  在自己的空间(不管你在哪里建立了自己的BLOG或SPACE),你都必不可少的发表一些评论,以前的做法就是在文章下面跟帖评论,很可能要不定时回去看看自己的评论别人是如何看待的,TRACKBACK就是为了解决这个问题而生的.
  你在BLOG发表一篇评论的时候,在尾部的引用栏输入对方文章的引用(TRACKBACK)地址,那么你发表完文章后,对方的BLOG就会自动在你所评论的文章的尾部添加了你的引用信息,所显示的信息因程序而不同,基本的要素包括了你评论的标题和你的评论的链接,其他人可以很清楚地看到你的引用,并很方便地点击就可以来看你的文章.
  Blog跟BBS有点重要的不同,Blog是一种个人创作,用Blog来发表自己的东西,保存自己的东西,即使是对他人Blog文章的评论也要在自己的Blog中永久保留下来。通过Trackbak,我就可以在自己的Blog中发表文章,同时把自己这篇文章的URL地址Ping到鱼头的那篇文章上去。这样,所有阅读鱼头文章的人也能通过Trackback顺藤摸瓜地来我的Blog看我的文章。
  所以,当我们的Blog有了Trackback Ping功能,那么谁都可以通过Trackback Ping来发表意见和评论了。这样,多家Blog网站就通过相关话题而联接起来。各种评论在Internet上相互连接而织成一张大网。因此,可以说, Trackback创造出了Blog与BBS、Diary完全不同的文化,Blog的世界通过Trackback而变成真正的无限互连。
  作为Blogger,让我们习惯于这样讨论问题和做评论吧:把内容写在自己的Blog里面,Trackback Ping到别人的Blog。这个概念是论坛模式里从来没有的,称为Remote Commenting。
  早期版本的Trackback规范中,Ping是GET方式的HTTP请求,现在不再支持GET方式,只能用POST方式。
  参数包括:
  title – 文章的标题
  excerpt – 文章的摘要。在Movable Type系统中,如果摘录信息超过255个字符将会被截断为252个字符,并在后面增加…三个字符
  url – 文章的永久连接。象其它永久连接一样,这个连接应可能准确地在页面中定位文章的入口,因有疑问时这个链接会用到
  blog_name – 发表文章的blog的名称
  在上述的参数中只有url是必须的。如果title没有提供,url的值将被用作标题。
  当我的Blog发出这个Trackback Ping后,将接收一个简单的XML格式应答,如果Ping成功,那么应答的格式如下:
  <?xml version=”1.0″ encoding=”iso-8859-1″?>
  <response>
  <error>0</error>
  </response>
  而失败应答的格式为:
  <?xml version=”1.0″ encoding=”iso-8859-1″?>
  <response>
  <error>1</error>
  <message>The error message</message>
  </response>

  • Share/Bookmark

Tags: , , , , , , , , ,

wordpress博客文章中添加音乐的方法

在公告或文章中加入以下代码:

代码一:

<BGSOUND src=”音乐文件网址” loop=infinite>

代码二:

<object id=”videowindow1″ classid=”clsid:6bf52a52-394a-11d3-b153-00c04f79faa6″ width=”300″ height=”45″ codebase=”http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701″><param name=”URL” value=”http://www.crazylemon.net/wp-content/uploads/2009/07/bawohuilaile.mp3″ /><param name=”playCount” value=”infinite” /><param name=”autoStart” value=”0″ /><param name=”volume” value=”100″ /><param name=”uiMode” value=”full” /><param name=”stretchToFit” value=”1″ /><embed id=”videowindow1″ type=”application/x-mplayer2″ width=”300″ height=”45″ stretchtofit=”1″ uimode=”full” volume=”100″ autostart=”1″ playcount=”infinite” url=”http://www.crazylemon.net/wp-content/uploads/2009/07/bawohuilaile.mp3″></embed></object>

代码说明:

两种代码都可以为博客添加音乐,它们的分别在于:

加入背景音乐,播放器不会显示在页面上;
加入播放器,使用播放器播放背景音乐。

代码二中以下部分可以自行替换:

音乐文件网址可以替换上自己喜欢的音乐文件网址;
语句<PARAM NAME=”playCount” VALUE=”infinite”>的“infinite”可以替换为数字,表示重复播放多少次,如果不更改表示永久循环播放;
语句<PARAM NAME=”autoStart” VALUE=”1″>表示是否自动播放,更改为”0″时不会自动播放,”1″的时候是自动播放;
height和width两个属性可以改变播放器的大小。

  • Share/Bookmark

Tags: , , , , , ,

google-analytics-for-wordpress 3.0 bug

升级后,后台出错:

Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, ‘GA_Admin::add_config_page’ was given in …/wp-includes/plugin.php on line 339

无法操作后台,解决方法是进ftp删了这个插件,再传上旧版的:

http://downloads.wordpress.org/plugin/google-analytics-for-wordpress.2.9.5.zip

重新启用下就行了,原来的设置信息不变

  • Share/Bookmark

Tags: , , , , , , , ,

修改WordPress留言头像的大小

在comments.php里面找到:

<?php wp_list_comments(”); ?>

改为:

<?php wp_list_comments(’avatar_size=60′); ?>

即60*60像素

  • Share/Bookmark

Tags: , , , , ,

分析WordPress的Rewrite机制

家都知道,WordPress 可以通过 Apache 的 mod_rewrite 模块,使用 .htaccess 文件来重写URL,生成静态链接(或称永久链接),如 http://example.com/年/月/日/日志名/ ,使URL更加美观也对搜索引擎更友好。但具体是如何实现的,可能有些朋友不是很清楚,因此我在这里稍稍阐述下。而在不支持 .htaccess 的主机环境中,也可以使用 http://example.com/index.php/年/月/日/日志名/ 这种形式的URL,以及使用ISAPI等东东,原理都差不多,本文就不探讨了。

我以 http://www.crazylemon.net/database-dict-for-wordpress-23/2008/02/25/ 为具体例子进行分析。首先我们先来看看WordPress根目录下的 .htaccess 文件,其中有一段如下

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

意思是指,当接收到的请求不是一个文件或目录时,则会重写为WordPress根目录下的index.php文件,然后 index.php 就开始处理请求。

index.php 会包含 wp-blog-header.php, wp-blog-header.php 会包含 wp-config.php, wp-config.php 又会包含 wp-settings.php,最后 wp-settings.php 会包含一大堆文件进来,晕了吧。其中, wp-includes/query.php 中的 WP_Query 类和 wp-includes/classes.php 中的 WP 类是Rewrite最主要的,因此我们将对象实例化

$wp_the_query =& new WP_Query();
$wp_query     =& $wp_the_query;
$wp_rewrite   =& new WP_Rewrite();
$wp           =& new WP();

做了这么多准备工作后,WP真正开始处理请求了,在 wp-blog-header.php 中调用wp()函数,在这个函数执行了 WP 类的成员方法main()

function main($query_args = ”) {
    $this->init(); //初始化,获取当前用户信息
    $this->parse_request($query_args); //解析请求
    $this->send_headers(); //发送头信息
    $this->query_posts(); //查询日志
    $this->handle_404(); //操作404(URL地址不存在)
    $this->register_globals(); //注册全局变量
    do_action_ref_array(’wp’, array(&$this));
}

我们进入$this->parse_request()瞧瞧,通过$_SERVER[’REQUEST_URI’]和过滤得到字符串 ‘database-dict-for-wordpress-23/2008/02/25′ 赋值给$request_match,与存储在数据库中的rewrite规则集进行正则匹配,rewrite规则集类似与下面这个样子,当然,比下面的多了很多。

[wp-feed.php$] => index.php?feed=feed
[wp-commentsrss2.php$] => index.php?feed=rss2&withcomments=1
[(about)/trackback/?$] => index.php?pagename=$matches[1]&tb=1
[page/?([0-9]{1,})/?$] => index.php?&paged=$matches[1]
[comments/(feed|rdf|rss|rss2|atom)/?$] => index.php?&feed=$matches[1]&withcomments=1
[search/(.+)/?$] => index.php?s=$matches[1]
[category/(.+?)/?$] => index.php?category_name=$matches[1]
[tag/(.+?)/?$] => index.php?tag=$matches[1]

我的请求与 ‘([^/]+)/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})(/[0-9]+)?/?$’ 这条匹配,所以我的请求被转化为 ‘name=database-dict-for-wordpress-23&year=2008&monthnum=02&day=25&page=’,如果请求都没匹配上那就肯定404了。接着就是通过 $this->query_posts() 来查询日志信息了,查询不到那还是404,废话…

把这些都整完了,回到 wp-blog-header.php,包含 wp-includes/template-loader.php 来加载模板并显示,日志显示日志,页面显示页面,404显示404,总之就是各神归位,OVER

  • Share/Bookmark

Tags: , , , , , , , , , , , , , ,

wordpress头像设置

大家都知道,wordpress通过 Gravatar(全称为 globally recognized avatar)显示评论者头像,在wordpress2.6版本,已经开始支持头像显示了,不再像之前的版本那样需要使用插件或者修改代码才能显示评论者头像了。

只需要在gravatar注册你的Email并上传头像图片,以后你只要在可以显示头像的地方评论并留下该Email,就可以方便的显示你的小头像了。 

而且,为了防止没有使用gravatar头像服务的朋友的头像千篇一律,wordpress还在后台中增加了三种系列的随机头像选择。

  • Share/Bookmark

Tags: , , , , ,