现在的位置: 首页 > IT运维 > 正文

wpseo_get_suggest目标关键词补丁

2014年11月23日 IT运维 ⁄ 共 1051字 暂无评论 ⁄ 被围观 9+

WordPress插件 WordPress-seo插件的百度建议词补丁。原因是原函数获取的是谷歌关键词建议,而我们根本无法访问到谷歌,故替换为百度关键词建议。

修改目标文件 /admin/ajax.php,替换 wpseo_get_suggest函数内容如下:

function wpseo_get_suggest() {
	check_ajax_referer( 'wpseo-get-suggest' );
	$t=microtime();
	$ta=explode(' ',$t);
	$t=$ta[1].substr($t, 2,3);
	$term   = urlencode( $_GET['term'] );
	$result = wp_remote_get( "http://suggestion.baidu.com/su?json=1&p=3&sid=10101_1435_9993_7802_9476_10120_10017_9499_10051_10065_9966_9769_9758_10008_9979_9022&req=2&cb=jQuery1102025474457775154613_1416688798899&_={$t}&wd={$term}" );
	
	$return_arr = array();
	if ( ! is_wp_error( $result ) ) 
	{
		$h=$result['body'];
		$h=escape1a($h);
		$p1=strpos($h,'(')+1;
		$h=substr($h,$p1,-2);
		$j=json_decode($h,true);
		$return_arr = $j['s'];
	}
	echo json_encode( $return_arr );
	die();
}
function escape1a($str) {//函数名注意防止与其他php模拟escape函数名冲突
	preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/", $str, $r);
	$ar = $r[0];
	$skip=false;
	foreach($ar as $k=>$v) {
		if (ord($v[0]) >= 128){
			$ar[$k] = "\\u".bin2hex(iconv("GB2312", "UCS-2", $v)); //仅对中文编码
		}else
			$ar[$k] = $v;
	}
	return join("", $ar);
}

注意百度链接中的sid和cb参数要适当修改,否则频繁提交会被百度当做机器人屏蔽!如果能找到其生成算法,改成用函数生成则最佳。

给我留言

您必须 [ 登录 ] 才能发表留言!

×
#