分类: IT技术

让WordPress支持中文tag和分类以及链接

一条评论

2009/12/01 at 19:54分类:IT技术

有的人用文章名做固定链接(%postname%),但是汉字标题出来后,地址栏的链接就变为一长串符号了,减少了可读性。经过多方取经,终于知道了不用插件只需简单的修改两句代码就可以支持汉字链接了。

打开wp-includes文件夹,找到classes.php,修改其中的两行,如下。

下面是截取第152行到159行(WordPress 2.8.2版本,其他版本可能位置不同,可用Ctrl+F查找$pathinfo = $_SERVER['PATH_INFO']来确定位置),其中改变的是153行、158行。


if ( isset($_SERVER['PATH_INFO']) )

$pathinfo = $_SERVER['PATH_INFO'];

else

$pathinfo = '';

$pathinfo_array = explode('?', $pathinfo);

$pathinfo = str_replace("%", "%25", $pathinfo_array[0]);

$req_uri = $_SERVER['REQUEST_URI'];

$req_uri_array = explode('?', $req_uri);

修改为:

if ( isset($_SERVER['PATH_INFO']) )

$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'],"UTF-8","GBK");

else

$pathinfo = '';

$pathinfo_array = explode('?', $pathinfo);

$pathinfo = str_replace("%", "%25", $pathinfo_array[0]);

$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'],"UTF-8","GBK");

$req_uri_array = explode('?', $req_uri);

修改后,保存,上传。OK!已经可以支持汉字链接了。

wordpress标题自动转换为英语slug插件cos_slug_translator

一条评论

2009/12/01 at 19:40分类:IT技术

一直都想写这个插件,最近又朋友写出来拼音slug的插件更是触发了我想写这个英语slug的动力,可是google迟迟不推出它的翻译接口,看来也不用再等了,干脆出绝招来解决这个问题吧.

这个插件的作用是将标题的中文自动翻译成英语slug,这样的好处在于SEO ,譬如本页的网址auto-slug-translate-plugin.html就是根据slug生成的,如果你启用了这个插件就不需要手动为每个标题再做一次翻译了,google的翻译是越来越完善和准确了,不得不服,相关演示请看http://demo.storyday.com

安装方法:和其他插件一样,上传到插件目录下,后台激活即可.插件激活之后如再新增加文章,对应的slug将会自动从标题翻译得到.

下载地址:cos_slug_translator.zip

支持wordpress2.3以及其他2.x版本

对不起各位了,上传的时候将原始的错误版本传上去了,这次是正确的了

修正了由于snoopy class冲突的错误,请大家下载新的文件,已经安装的朋友请删除原来的内容,用新的文件覆盖即可。

ChangeLog:

  1. 去掉了自定义snoopy,沿用wp的snoopy,解决了后台调用wp日志的冲突问题;
  2. 更加智能,如果手动指定了英语slug,则以手动优先,修改文章不再修改slug,更加有利于SEO ;
  3. 文件瘦身,整个插件不超过3K
  4. 更正了插件无法翻译的问题

下载地址:

  1. cos_slug_translator.zip 2.0
  2. cos_slug_translator2.1(2008-10-27)

本站也用上这个插件了,也懒得自己每篇文章都手动写slug了

 

转自:http://www.storyday.com/html/y2007/1202_auto-slug-translate-plugin.html

用cookies实现只弹窗口出一次的php代码

一条评论

2009/12/01 at 19:20分类:IT技术

$_v)
{
        if( strlen($_k)>0 && eregi('^(cfg_|GLOBALS)',$_k) && !isset($_COOKIE[$_k]) )
        {
                exit('Request var not allow!');
        }
}

function _RunMagicQuotes(&$svar)
{
        if(!get_magic_quotes_gpc())
        {
                if( is_array($svar) )
                {
                        foreach($svar as $_k => $_v) $svar[$_k] = _RunMagicQuotes($_v);
                }
                else
                {
                        $svar = addslashes($svar);
                }
        }
        return $svar;
}

foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
        foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v);
}

//以上代码无需修改

// 判断弹窗的cookies

if(!isset($ad))
{
//3600是失效时间,可以自行修改
        setcookie("ad", "1", time()+3600);
        //输出弹窗代码
        //请自行替换,在此之前本页面请勿输出任何代码,否则无法设置cookies
        echo 'document.writeln("

路径请自行需改

QQ2009 sp5 服务器连接超时问题

一条评论

2009/11/27 at 09:22分类:IT技术

刚装了QQ2009 sp5
想体验一下新版,结果登录的时候总是提示服务器连接超时,重装了一遍也不行,
然后看防火墙也没禁止。
不得不百度求助,一看方法,太简单了
删除C:\Program Files\Common Files\tencent 文件夹

让windows下IIS支持wap,让ASP生成wml

一条评论

2009/11/26 at 20:19分类:IT技术

如果你想让你的IIS支持wml,做个wap网站,只需作小小的改变就行了.虽然目前支持wml的虚拟主机极少,但是自己在本机上玩玩也好的.
首先在打开IIS,然后在默认网站的属性–HTTP头–MMIE映射–文件类型–添加注册文件的类型:


Associated Extension              MIME Type
wml                                            text/vnd.wap.wml
wmlc                                         application/vnd.wap.wmlc
wbmp                                        image/vnd.wap.wbmp
wmlsc                                      application/vnd.wap.wmlscriptc
wmls                                        text/vnd.wap.wmlscript
wsc                                           application/vnd.wap/wmlscriptc

现在你就可以在你的站点添加wml文件了.可以用手机模拟器来浏览,或者opera浏览器浏览.如果你的主机是对外发布的,那你就可以用手机来浏览你的网站了.