存档

‘技术分享’ 分类的存档

Wordpress关键词高亮

2009年10月3日 admin 没有评论

在搜索结果页面结果中显示关键词,或者对搜索引擎带来的用户显示欢迎语和操作提示,是一个能有效提高网站易用性的方法。wordpress下关键字高亮工具有很多,有searchhilight, wp landing sites, wp-hightlights等,其中wp landing sites可以提供欢迎语,使用方法如下:

第一步,修改你主题下的single.php和index.php,加入以下内容
<?php if (ls_getinfo('isref')) : ?>
<p class='landingsites'>欢迎来自 <?php ls_getinfo('referrer'); ?> 的朋友! 如果您是第一次来到这里, 推荐您通过
<a href='/feed' target='_blank'>RSS feed</a> 订阅我的博客!</p>
<div class="hello">您所搜索的关键词为: <strong><?php ls_getinfo('terms'); ?></strong></div>
<?php endif; ?>

第二步,在css中添加

.landingsites {
background-color:#FFFEC6;
border:thin dashed #CFCFCF;
color:#333333;
font-size:12px;
margin:3px 0 10px;
padding:6px;
}

第三步是修改插件中的landingsites.php中的searchengine数组中加入支持百度和中文谷歌的支持,

'google.cn' => 'q',
'baidu.com' => 'wd',

中文转码修改:
function ls_get_terms($d)函数最后返回return $terms;之前加上如下代码:

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

这样你就可以在百度和google中看一下效果了。
要继续优化,可以考虑以下几点:

1. 在404页面中添加相关文章,这样即使是碰到google来的断链,用户也会找到些有用的东西:
<?php if (ls_getinfo('isref')) : ?>
<h2><?php ls_getinfo('terms'); ?></h2>
<p>欢迎来自 <?php ls_getinfo('referrer'); ?> 的朋友! 您所找的页面不存在,但是你搜索的关键词:<i><?php ls_getinfo('terms'); ?></i>. 有以下主题或许您也感兴趣:</p>
<ul>
<?php ls_related(5, 10, '<li>', '</li>', '', '', false, false); ?>
</ul>
<?php endif; ?>

2. 加粗或者高亮关键词:

function ls_terms_filter($content){
// Did we come from a search engine?
$referer = ls_get_refer();//取来源域名
$output = ;
$delimiter = ls_get_delim($referer);//看是否在list里面
if($delimiter)
{
$terms = ls_get_terms($delimiter);//取关键字串
$terms= array_unique(preg_split(/[\s,]+/, $terms));//转换为数组
$contentarr = preg_split(/(<.*>)/U, $content, -1, PREG_SPLIT_DELIM_CAPTURE); // capture the tags as well as in between
$stop = count($contentarr);// loop stuff
for ($i = 0; $i < $stop; $i++) {
$content = $contentarr[$i];
if ((strlen($content) > 0) && (< != $content{0})) { // If it’s not a tag
foreach ($terms as $term) {
if (strlen($term)>1)//避免关键字太短的情况
$content=eregi_replace(($term),<b>\\1</b>, $content);
}
}
$output .= $content;
}
return $output;
} else{
return $content;
}
}

增加了上述的function,对内容里面的关键字进行加粗处理
增加了2个filter

add_filter(the_content, ls_terms_filter);
add_filter(comment_text, ls_terms_filter);
如果只需要高亮关键词而不需要欢迎语可以用search_hilite插件。但是这两个方法在使用super  cache时都会出问题,比较好的highlight是纯php方案,如Js的搜索引擎关键字高亮工具Search Engine Keyword Highlight,这方面的wp插件可以用这个wp-hightlight插件。需要注意的是这个插件的最后有个后门钩子,需要去掉.
这个JS之前对中文和百度是不生效的,参照了这篇文章做了修改,现在百度和中文都可以使用了:

http://www.aiview.com/2005/08/highlight_keywords_with_javascript.html

分类: 技术分享 标签: ,

如何修改WordPress的固定链接?

2009年9月4日 admin 没有评论

我的所有子页面都是http://www.chinawp.com/?paged=2的形式,感觉不正常

正常的是这样:http://www.chinawp.com/topics/basic/intro/

如何修改永久链接?
首先我们看看wordpress官方列出的部分可以使用的永久链接基本参数:
%year%
基于文章发布年份,比如2007;
%monthnum%
基于文章发布月份,比如05;
%day%
基于文章发布当日,比如28;
%hour%
基于文章发布小时数,比如15;
%minute%
基于文章发布分钟数,比如43;
%second%
基于文章发布秒数,比如33;
%postname%
基于文章的postname,其值为撰写时指定的缩略名,不指定缩略名时是文章标题;
%post_id%
基于文章post_id,比如423;
%category%
基于文章分类,子分类会处理成“分类/子分类”这种形式;
%author%
基于文章作者名。

将上述参数进行组合,即可得到wordpress的永久链接形式。网上常见的几种设置方法:

1、/%year%/%monthnum%/%day%/%postname%/
2、/%year%/%monthnum%/%postname%/
3、/%year%/%monthnum%/%day%/%postname%.html
4、/%year%/%monthnum%/%postname%.html
5、/%category%/%postname%.html
6、/%post_id%.html

诸如此类,可以自由定义的。昨天自己也改了几次,最后还是确定为:/%category%/%postname%.html这种形式。其实我是想使用基于日期的,后面叙说,都是一些片面的观点,仅供参考。

1、考虑到自己博客属单人维护,内容不可能很多,所以目录结构不宜过深,其实按照网上的说法,三层以内都是完全没问题的,可是一旦层数多了后,整个网站就变得比较松散了,网上似乎把这个叫黏合,所以我觉得上述第1、3种可以放弃,除非站点内容丰富,也通过tag之类的进行联合。

2、我个人是倾向于使用基于日期的,比如这种/%year%%monthnum%/%postname%.html生成的就是 200705/XX.html,但是当你使用200705这个目录式访问时wp把200705自动重定向到2007/05,我就是不喜欢,又不愿意改成 2007/05/XX.html这种形式,只有继续想办法了。

3、最后才确定使用分类来生成链接,就是上面的第5种,这种其实也不错,很多朋友都是采用的这种,我喜欢简洁就把自己的目录缩略名设置得很简单,链接看上去也还可以了。

4、我没有用现在更容易被收录的/结构而是采用html为扩展名的形式,我的想法是一个网站不能总有目录结构没有html文件吧,全站都是目录结构了,觉得这样看上去不好看,所以还是按照传统的样式好了。
补充步骤:
1进入后台
2设置
3永久链接
4自定义/%category%/%postname%.html
ok

WordPress十个安全设置技巧

2009年9月4日 admin 没有评论

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进行扫描,查找存在的问题,使用较为简单。