2009年2月

WSASocket failed to open the inherited socket

这几天捣腾Windows平台的Apache,启动了也没有看到httpd.exe进程,服务也无法开启。查看logs目录下的error.log内容。

setup_inherited_listeners(), WSASocket failed to open the inherited socket

解决方法

"网络连接"-->"TCP/IP属性"--> "高级"-->"WINS"--->去掉"LMHOSTS查询"的勾选。

WordPress2.7.1升级超时问题

WordPress2.7.1在2009-02-11释出,进了后台,头部有升级通知。

点现在升级->自动升级 ,然后输入FTP用户密码来升级,就相当于把php当做FTP客户端,不过不行的是我尝试了多次都出现连接超时。注意到一点默认的timeout是30000 milliseconds,也就是30秒。改大点就应该没问题了。打开DreamWeaver CS4,搜索整个网站,关键字timeout. 定位到\wp-admin\includes\file.php 的第444行:

$response = wp_remote_get($url, array('timeout' => 3000));

把30000改成30000000000000,我想应该没问题了,结果升级成功,确实没问题。

WordPress最新评论widgets调整

默认情况下,Wordpress最新评论widgets的形式为:

WordPress最新评论widgets调整

也就是 >>comment_author 在 comment_post_ID 上的评论
我现在需要把评论者的站点链接和评论内容链接去掉,然后改成这样:
>>comment_author 说道:comment_content >>

(本文以WP2.7中本版为例)
先在网路上抓个Poedit下来,安装好,当然有Chinese Simplifed就再好不过了,编辑Wordpress目录下的\wp-content\languages\zh_CN.po

搜索“上的评论” 定位到第一个搜索到的“上的评论” ,可以发现是这样的:
原文:%1$s on %2$s
译文:%1$s 在 %2$s 上的评论
现在把译文改成这样:%1$s 说道: %2$s ,保存zh_CN.po

接下来用任意编辑器打开\wp-includes\comment-template.php,定位到132到150行:

/**
* Retrieve the html link to the url of the author of the current comment.
*
* @since 1.5.0
* @uses apply_filters() Calls 'get_comment_author_link' hook on the complete link HTML or author
*
* @return string Comment Author name or HTML link for author's URL
*/
function get_comment_author_link() {
/** @todo Only call these functions when they are needed. Include in if... else blocks */
$url = get_comment_author_url();
$author = get_comment_author();

if ( empty( $url ) || 'http://' == $url )
$return = $author;
else
$return = "<a href='$url' rel='external nofollow' class='url'>$author</a>";
return apply_filters('get_comment_author_link', $return);
}

以上代码是get_comment_author_link()的定义,当$url变量有值的时候,返回一个带链接的author,我不需要链接,所以改为:

/**
* Retrieve the html link to the url of the author of the current comment.
*
* @since 1.5.0
* @uses apply_filters() Calls 'get_comment_author_link' hook on the complete link HTML or author
*
* @return string Comment Author name or HTML link for author's URL
*/
function get_comment_author_link() {
/** @todo Only call these functions when they are needed. Include in if... else blocks */
$url = get_comment_author_url();
$author = get_comment_author();

if ( empty( $url ) || 'http://' == $url )
$return = $author;
else
$return = "$author";
return apply_filters('get_comment_author_link', $return);
}

接下来打开wp-includes\widgets.php 定位到1399到1402行:

<ul id="recentcomments">< ?php
if ( $comments ) : foreach ( (array) $comments as $comment) :
echo '<li class="recentcomments">' . sprintf(__('%1$s on %2$s'), get_comment_author_link(), '<a href="'. get_comment_link($comment->comment_ID) . '">' . <span style="text-decoration: underline;">get_the_title($comment->comment_post_ID)</span> . '</a>') . '';
endforeach; endif;?>
</ul>

下划线部分改为:$comment->comment_content  ,保存。好了,搞定,看下效果:

WordPress最新评论widgets调整

需要改代码,有点麻烦,不过生命就是在于折腾!