原版由张戈发布,将其代码加入function.php后,部分主题会报错,报错信息如下:
1 | Warning: preg_match_all() expects at least 3 parameters, 2 given in (后面这里每个人的不一样) |
出错原因:
preg_match_all() 函数用于进行正则表达式全局匹配,成功返回整个模式匹配的次数(可能为零),如果出错返回 FALSE 。
语法:
1 | preg_match_all(pattern,subject,flags) |
如上,应该有三个参数,张戈的js中少了第三个参数(实际为存储数组,具体可以去网上查查这个函数的详细讲解),随意补上即可
改进方法:
将代码中的:
1 | if(!preg_match_all('/提交网址/u',$rs) && preg_match_all('/百度为您找到相关结果/u',$rs)){ |
修改为:
1 | if(!preg_match_all('/提交网址/u',$rs,$mata) && preg_match_all('/百度为您找到相关结果/u',$rs,$matb)){ |
1 | 以下为改进后的版本的完整代码,直接加入function.php中即可 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | /** * WordPress百度搜索自动推送、主动收录JS **/ add_action( 'wp_footer', 'bdPushData', 999); //检查百度是否已收录最新改进版本 if(!function_exists('baidu_check_record')){ function baidu_check_record($url){ global $wpdb; $post_id = ( null === $post_id ) ? get_the_ID() : $post_id; $baidu_record = get_post_meta($post_id,'baidu_record',true); if( $baidu_record != 1){ $url='http://www.baidu.com/s?wd='.$url; $curl=curl_init(); curl_setopt($curl,CURLOPT_URL,$url); curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); $rs=curl_exec($curl); curl_close($curl); //如果抓取到的百度结果中不存在【提交网址】这个关键词,则认为该页面已被百度收录 if(!preg_match_all('/提交网址/u',$rs,$mata) && preg_match_all('/百度为您找到相关结果/u',$rs,$matb)){ update_post_meta($post_id, 'baidu_record', 1) || add_post_meta($post_id, 'baidu_record', 1, true); return 1; } else { return 0; } } else { return 1; } } } //输出百度自动推送js代码 if(!function_exists('bdPushData')){ function bdPushData() { if ($_SERVER['HTTPS'] != "on") { $currentUrl = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"]; } else { $currentUrl = 'https://'.$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"]; } //判断是否是未收录页面,并且当前页面是否等于正规url地址(get_premalink) if(baidu_check_record(get_permalink()) == 0 && $currentUrl == get_permalink()) { echo "<script>(function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(bp, s); })();</script>"; } } } |
原文链接:https://xiaohost.com/10714.html,转载请注明出处。
评论0