存档

文章标签 ‘插件’

首页文章载入Ajax化

2009年5月30日 4 条评论

  不知道是什么原因,本站有些文章在搜索引擎中的位置反而在首页的后面。比如有某篇文章中提到了”xxxx”,文章发布后会在首页显示,当搜素引擎抓取后搜索本站中的”xxxx”时,首页反而排在了该文章的前面。浏览者点击搜索结果进入本站时,如果是首页,很可能文章已经不在首页了。为了解决这个问题想让首页中显示的文章内容全部由ajax载入。这样就避免了搜索引擎对首页显示的文章内容进行抓取,也加快了首页的载入速度。

  一个自己写的小插件,主要功能是返回所请求文章的摘要,实现首页文章载入的AJAX化,JS部分非原创,修改而已(下载地址在文章末尾)。

<?php
/*
Plugin Name: myAjax
Plugin URI: 
Description: This only a test!
Author: opsunv
Version: 0.0.1
Author URI: http://www.opsunv.com
*/
$myAjax_dir = get_bloginfo('wpurl').'/wp-content/plugins/myAjax';
function load_post_for_index($id){
	$post=new WP_Query();
	$post->query('p='.$id);
	if ($post->have_posts()){
		$post->the_post();
		return the_content('Read more...');
	}else {
		return "Sorry no archives match!";
	}
}
 
function myAjax(){
	$myAction=$_GET['do'];
	$id=$_GET['id'];
	if($myAction){
		if($myAction=='load_post'&&$id){
			echo load_post_for_index($id);
			exit;
		}
	}
}
function echoJs(){
	global $myAjax_dir;
	if(is_home()){
		echo '<script type="text/javascript" src="'.$myAjax_dir.'/post.js"></script>';
 
	}
}
 
add_action('wp_footer','echoJs');
add_action('parse_request','myAjax');
?>

写本插件时遇到的一个问题:如果使用query_posts() 来获取得到的文章内容似乎不能解析wordpress的more标签,所以另外实例化了一个WP_Query。
使用方法:
 1.把首页中的输出文章内容的代码去掉,如主题index.php中类似于

<?php the_content()?>

 2.确保你的网页中添加了jquery。
 3.下载插件,激活。Download

分类: BLOG建设 标签: , ,

wp-cumulus插件介绍

2009年5月29日 没有评论


下载地址:http://wordpress.org/extend/plugins/wp-cumulus/
  此插件提供一个3D的标签云显示效果。激活插件后在后台的 外观–>小工具 可以选择添加到侧栏并且可以对插件设置相关参数。如果要添加到网页的其他地方使用

wp_cumulus_insert();

  此插件现在不支持中文,作者目前也没有打算制作支持中文的版本,这主要是因为插件中的flash需要添加字库支持,添加中文字库后插件超过2M。
不过也有相应的对中文支持的解决办法,一个比较好的方法http://blog.joytown.tw/2009/05/05/514,唯一的缺点就是如果有新增的标签时将要重新制作。另外一个方法是不使用内嵌字库,虽然也能达到显示中文的效果,不过在flash的整体效果上没有原版的好。现在有一款JS版的wp-cumulus,有兴趣的可以google上搜索。

分类: BLOG建设 标签: ,

支持IIS的cos-html-cache

2009年5月8日 6 条评论

  本篇文章将解决cos-html-cache在IIS下不能使用的问题,也是昨天发的文章的回答。
  通过分析cos-html-cache的代码后,发现主要问题是在IIS6.0下$_SERVER['REQUEST_URI']获取的URI是覆写前的,所以导致cos-html-cache在IIS6.0下不能使用。具体的分析可以看我昨天写的文章“cos-html-cache在IIS下不能使用的原因”。
  最初尝试从ISAPI Rewrite入手,但对这玩意儿不懂,没法只有从cos-html-cache的代码上想办法了。
  第一个思路是把获取的URI通过正则还原成覆写后的,再交给cos-html-cache插件的CreateHtmlFile处理,这样做实现上没问题,但太麻烦,判断是东西比较多。改动幅度可能也比较大。
  第二个思路,无意中发现的:),使用wordpress自带的get_permalink();函数(该函数位于wp-includes/link-template.php文件中),可以获得页面的URL地址。只要能在cos-html-cache中调用到这个函数就可以间接的获取到URI。好在wordpress在设计上的支持,可以在插件中调用wordpress自带函数。下面是获取理想中的URI的代码:

$url=get_permalink();//获取当前页面的地址
$url=preg_replace("'http:\/\/[^/]+([^# ]*)'",'$1',$url); //get /xx/xx/xx.xx

修改中还包括几个判断,具体的修改可以查看源文件(在文章末尾有下载地址);

另外在写ISAPI Rewrite规则时应该在转发规则前加上:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

上面的意思是判断请求的文件和目录是否存在,如果不存在那么将应用后面的规则。
一个简单的rewrite配置方案:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /html/(\d+)\.html /index.php?p=$1

修改后的插件下载地址:Download
目前在wordpress 2.7.1下测试通过(注:首页的生成上有一点问题,需要根据个人需要修改代码)。如果遇到问题请给我留言。

分类: BLOG建设 标签: , ,