18 07年5月

安装了一个防spam的插件


我这个wordpress这几天垃圾评论越来越多,好像是什么工程设备作黑帽seo的,很是气愤。于是google了一下,安装了一个叫Did You Pass Math的插件,地址是 http://www.herod.net/dypm/,遇到了一些问题,记录下来。
1.有中文版,但是编码好像有点问题,把英文版的自己修改了一下,问题解决,保存的时候注意时utf8编码就可以了
2.里面报错用的函数有点问题,数据会乱码,主要是没有指定编码,需要把里面的fail和fail函数替换成wp_die(这个函数的输出也不太好,准备回头再改改)
3.最后一个问题是输出格式的问题,这个插件要在网站的输入框下面添加一个输入框,部分代码如下

<p id="answerdiv">
<input type="text" name="answer" id="answer" size="6" tabindex="4" />
<label for="answer">
<?=$dypm_strings['question']?></label>     
</p>
         <script type="text/javascript">
            var urlField = document.getElementById("url");
            var submitp = urlField.parentNode;
            var answerDiv = document.getElementById("answerdiv");
            submitp.appendChild(answerDiv, urlField);
       </script>

answer的位置是乱的,查了一下,是因为上述js代码是找到id为url的input,然后在它的parentNode后append一个answerDiv
但是结果却是在url所在的p里面,本来应该是:
<p>id="url" </p>
<p>id="answer"</p>
结果却是
<p>id="url" <p>id="answer"</p></p>
google了一下,不知道怎么直接用js解决(如果您知道,请告诉我哦),于是用了jquery,把上述javascript代码改成了

<script type="text/javascript">
$
("#url").parent().after($("#answerdiv"));
<
/script>

问题解决。
I love jquery!

贝贝爸 发表在 原创技术文章 | 5个评论

5 07年5月

用jquery控制图片的最大宽度


选了这个3 columns的wordpress模板,发现一个问题,就是如果图片比较大,页面的排版会被撑乱,css正在学习中,还没搞清楚到底该咋改,如果您能帮我请留言。
正好看了一些jquery的资料,就拿这个问题来练手,基本思路是查看所有网页上的图片,如果大于一个数值,则设定宽度,否则,就按照原来的尺寸显示。代码如下:

  1. $(document).ready(function() {
  2. $("img").each(function(i){ 
  3.     var maxwidth=screen.width-$("#column2").width()-$("#column3").width()-100;
  4.     if (this.width>maxwidth)
  5.      this.width = maxwidth;
  6.     });
  7. });

第一行不用解释了吧?
第二行是查找所有img标签,每一个做后边的function处理
第三行设定最大的宽度,我这里取得是屏幕分辨率减去左右2列的宽度和一个常量。
第四,五行判断图片的宽度,如果超过这个宽度则设其宽度为允许的最大宽度。

现在看来,第三行应该和第二行换一下,效率应该会高些,这么写还有一个问题就是必须浏览器最大化才正常,还有什么好的解决方案呢?
————
想做一个点击阅读全部,显示所有内容的功能,对用户体验有好处,二来对seo有好处,还没时间做,空下来再说吧。

贝贝爸 发表在 原创技术文章 | 等您写评论

12 07年4月

wordpress 2.1.3升级备忘

关键字:

wordpress升级到2.1.3了,用svn看了一下改动的文件列表如下:
应该是只多不少,因为有些文件我自己手工改过
改动的文件多,但是代码不是很多,好像是添加了一个filter,有些变量前加了int,有些去掉了int,还有就是attribute_escape和clean_ur处理的变化。
attribute_escape主要是把<,"等做一些处理
clean_ur是对url做一些处理,包括typo的错误
文件列表如下

阅读全部»

贝贝爸 发表在 原创技术文章 | 等您写评论

4 07年4月

wordpress新功能

关键字:

最新评论,首页加上直接撰写文章的链接,如果有未审核评论醒目提示等功能。
2007-04-24
增加了上一篇下一篇的链接。

贝贝爸 发表在 原创技术文章 | 1个评论

24 07年3月

wordpress dynamic landing page(dlp)插件支持baidu及乱码的解决


Landing sites 1.3 是一个wordpress的wordpress dynamic landing(动态登录页)的插件,功能就是如果是从支持的搜索引擎到网站上来,可以在页面上部显示用户从哪里过来的,搜索的关键字是什么,并且,根据关键字搜索本站,显示相关的内容。
安装很简单。下载后放到plugin目录,激活,在想要显示的页面放入正确的代码就可以了。
具体可以参考:http://theundersigned.net/2006/06/landing-sites-11

本站从baidu过来的也有很多用户,这个插件不支持百度,所以需要增加支持百度的功能。
首先打开landingsites13.php
为$search_engines添加一个值,

'baidu.com' => 'wd',

保存重新上传就可以了,测试一下,起作用了。但是显示搜索的代码是乱码
比如搜索

http://www.baidu.com/s?wd=%B1%B4%B1%B4+wordpress&cl=3

到了本网站,显示
您从www.baidu.com来,要找?? wordpress.下面这些内容可能您也感兴趣:

但是从goolge过来就是对的,没有乱码。
经过查看,baidu的keywords,经过编码是:

%B1%B4%B1%B4+wordpress

而google的keywords是

%E8%B4%9D%E8%B4%9D+wordpress

原来这个东西不支持GBK编码,因为google用的是utf-8,所以没有问题。

解决的方法是,判断一下$terms是不是utf-8的,如果不是做一次转换,解决方法

function ls_get_terms($d)
最后的
return $terms;
前面加入

//convert gbk->utf8 if terms is gbk
$encoding_list="EUC-CN, UTF-8";
if (mb_detect_encoding($terms,$encoding_list)!="UTF-8"){
    
$terms=iconv(mb_detect_encoding($terms,$encoding_list), "UTF-8", $terms);
}

if (!seems_utf8($terms)){
    
$terms=iconv("GBK", "UTF-8", $terms);
}

测试通过,有问题请拍砖。
增加了几个国内搜索网站的支持

'baidu.com' => 'wd',
'soso.com'  => 'w',
'sogou.com'  => 'query',
'cha.so.163.com'  => 'q',
'page.so.163.com'  => 'q',
'site.so.163.com'  => 'q',
'news.so.163.com'  => 'q',
'pic.so.163.com'  => 'q',
'search.live.com' => 'q',

添加到$search_engines里即可
—————————
2007-04-23更新

贝贝爸 发表在 原创技术文章 | 14个评论

19 07年3月

Ultimate Tag Warrior 3 tag ajax搜索中文bug fix


Ultimate Tag Warrior 3(wordpress的一个插件)的tags ajax 搜索功能很不错,但是对中文的支持有问题。现在提供一个fix的办法如下:
打开
searchtags.php

  1. function searchFor(item,tagid,related) {

下面添加

  1. var browser = navigator.appName;
  2. if(browser == "Microsoft Internet Explorer"){
  3. item=escape(item);
  4. }

查找

  1. UTW_ShowWeightedTagSetAlphabetical

把类似

  1. UTW_ShowWeightedTagSetAlphabetical("",
  2. array('default'=>'
  3. <a id="tag_%tagid%"
  4. href="javascript:searchFor(\'%utag%\', \'%tagid%\', \'%relatedtagids%\')"
  5.  style=\'font-size:12px; border:none\'>%tagdisplay%</a> | '), 0)

的代码里面的tag换成utag

打开
ultimate-tag-warrior-core.php

  1. $format = str_replace('%tag%', $tag_name, $format);

下面添加

  1. $format = str_replace('%utag%', urlencode(stripslashes($tag_name)), $format);

贝贝爸 发表在 原创技术文章 | 等您写评论

18 07年3月

给wordpress添加coolcode按钮


装了wordpress的coolcode的插件,用起来不错。只是要自己输入代码

  1. <coolcode>XXX</coolcode>

觉得不爽,于是找到了默认的编辑器作了修改,可以直接点击按钮插入coolcode代码。
打开

  1. wp-includes/js/quicktags.js

大约
找到

  1. edButtons[edButtons.length] =
  2. new edButton('ed_code'
  3. ,'code'
  4. ,'<code>'
  5. ,'</code>'
  6. ,'c'
  7. );

添加

  1. edButtons[edButtons.length] =
  2. new edButton('ed_coolcode'
  3. ,'coolcode'
  4. ,'<coolcode>'
  5. ,'</coolcode>'
  6. ,'cc'
  7. );

保存后,刷新编辑器,就多了一个叫coolcode的按钮,这样就不用每次自己输入代码了。
想改进成可以用下拉菜单选择不同语言,还没搞,凑合着先用起来。

贝贝爸 发表在 原创技术文章 | 1个评论

28 07年2月

wordpress程序修改&使用tips

关键字:,

  • wordpress发出的邮件标题乱码,修改
    wp-includes/pluggable.php
    里面的wp_mail function,
    $subject 做如下处理

    1. $subject = "=?".get_option('blog_charset')."?B?".base64_encode($subject)."?=";

    即可,测试成功。

  • Ultimate Tag Warrior 3 tag 的永久链接不能用
    方法就是什么都不动,来回保存几下就好了。或者就是改几下永久链接的值,然后再改回来。
  • 编辑文件的时候,特殊字符被转义
    比如”<"变成 "<",很是麻烦,解决的方法是,不用高级编辑器。。。烂

贝贝爸 发表在 原创技术文章 | 等您写评论

26 07年2月

修改,调整,汉化了一下模板和程序

关键字:,

希望你能喜欢:D

贝贝爸 发表在 原创技术文章 | 1个评论