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

wpseo_get_suggest目标关键词补丁

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

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

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

[php]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);
}[/php]

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

给我留言

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

×
#