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

wpseo_get_suggest目标关键词补丁

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

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参数要适当修改,否则频繁提交会被百度当做机器人屏蔽!如果能找到其生成算法,改成用函数生成则最佳。

给我留言

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

×
#