wordpress自适应手机插件
wordpress通过代码实现百度主动推送和实时推送
我的网站被百度K站了,我很无语,也很无奈,因为网站都是合法内容,也没抓取别人的文章,然后就被百度K站了,目前通过百度搜索,没有任何我站点的信息
我很无奈了,正规做站都遇到这个问题。看了下百度统计,天天有第三方的来刷费流量,我相信大家的站都会遇到这个问题,我尝试封禁这些费流量,最终结果是无劳。
思来想去,不能就这么放弃了,于是尝试的主动推送百度,最后结果如何,我也左右不了啦,总比等着强,下面将我的方法整理一下。
首先需要去百度的搜索资源平台注册账号,地址为:
注册完之后按照要求添加自己的站点,相信这块大家都知道怎么操作,我就不在累絮啦。
重点在”资源提交->普通收录”中,我们使用api接口提交,注意自己token,那是百度分配给你的。
在wordpress的funcions.php中添加代码
function save_post_xxzhuti_baidu($post_id, $post, $update)
{
if($post->post_status != 'publish') return false;
$res = check_ispost_baidu($post_id);
if(!empty($res)) return false;
$url = get_permalink($post_id);
$api = '?site=&token=您的token';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => $url,
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
}
add_action('save_post', 'save_post_xxzhuti_baidu', 10, 3);
这样再保存和修改文章时都会将文章提交到百度,我也不知道最终百度会不会解封,先这样着吧。
WordPress纯代码给文章添加百度收录判断
编辑搜图
请点击输入图片描述
利用api接口纯代码给WordPress文章添加百度收录判断
本站的api接口是?domain=
api接口文件代码如下:代码来自Weifeng's Blog
<?php
/**
* Baidu
* @editer: Weifeng
* @link:
* @version: 1.0
*/
error_reporting(0);
header("Access-Control-Allow-Origin:*");
header('Content-type: application/json');
$domain = @$_GET['domain'];
if(!isset($domain) || empty($domain) || $domain==''){
$data = array(
"code" => false,
"msg" => "未传入请求参数!"
);
echo json_encode($data,JSON_UNESCAPED_UNICODE);
exit;
}
if(substr($domain, -1) == '/'){
$domain = substr($domain,0,strlen($domain)-1);
}
$data = checkBaidu($domain);
echo json_encode($data,JSON_UNESCAPED_UNICODE);
function checkBaidu($url){
$header = array(
"Host:www.baidu.com",
"Content-Type:application/x-www-form-urlencoded",//post请求
"Connection: keep-alive",
"Referer:",
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Safari/537.36"
);
$url = '?ie=UTF-8&wd='.urlencode($url).'&usm=3&rsv_idx=2&rsv_page=1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
if(strpos($output, '没有找到') || strpos($output, '很抱歉')){
$data = array(
"code" => 403,
"msg" => "该域名暂时未被百度收录!"
);
}else{
$number = GetBetween($output,'<span class="nums_text">百度为您找到相关结果约','个</span>');
if(empty($number) || $number == 0){
$number = GetBetween($output,'<b>找到相关结果数约','个</b></p>');
if(empty($number) || $number == 0){
$data = array(
"code" => false,
"msg" => "获取百度收录失败!"
);
return $data;
}
}
$data = array(
"code" => 200,
"msg" => "该域名已被百度收录!",
"number" => str_replace(',','',$number)
);
}
return $data;
}
function GetBetween($content,$start,$end){
$r = explode($start, $content);
if (isset($r[1])){
$r = explode($end, $r[1]);
return $r[0];
}
}
?>
使用方法
以知更鸟的Begin主题为例
打开/wp-content/themes/begin/inc下的post-meta.php文件,在if (zm_get_option('baidu_record')) {baidu_record_t();}的下方添加下方代码,约在55行。以及在if (zm_get_option('baidu_record')) {baidu_record_b();}的下方添加下方代码,约在143行。
//文章百度收录判断
$url = get_permalink();
$result = file_get_contents("?domain=".$url);//此处的api接口连接可以换成自己的
$arr=json_decode($result,true);
if ($arr['code']==200) {
echo '<span class="baidu-r"><a target="_blank" title="点击查看" rel="external nofollow" href="?wd='.get_the_title().'&tn=bds&cl=3&ct=2097152&si=' . $_SERVER['SERVER_NAME']. '&s=on"><i class="be be-baidu"></i>已收录</a></span>';
} else {
echo '<span class="baidu-r"><a rel="external nofollow" title="一键提交给百度" target="_blank" href="?sitename='.get_permalink().'"><i class="be be-baidu"></i>暂未收录</a></span>';
}
可以下载下方的懒人包上传至Begin主题目录进行覆盖。
其他主题使用方法
把下方的代码放在文章页面里就可以了,每个主题的文章页面命名不一样,你们找找看吧。
<?php
//文章百度收录判断
$url = get_permalink();
$result = file_get_contents("?domain=".$url);//此处的api接口连接可以换成自己的
$arr=json_decode($result,true);
if ($arr['code']==200) {
echo '<span><a target="_blank" title="点击查看" rel="external nofollow" href="?wd='.get_the_title().'&tn=bds&cl=3&ct=2097152&si=' . $_SERVER['SERVER_NAME']. '&s=on"></i>已收录</a></span>';
} else {
echo '<span><a rel="external nofollow" title="一键提交给百度" target="_blank" href="?sitename='.get_permalink().'">暂未收录</a></span>';
} ?>
?
将你的wordpress网站提交到百度
虽然你的wordpress网站已经正在运行了,甚至在外网上的排名与销售,如果是博客网站就是说访客也不少,但是,你可能会发现,当你在百度搜索你的网站的时候,发现并无法搜到,那是因为你通过外国服务器外国建站系统建立的一个wordpress网站还并没有被百度收录,所有做wordpress的站长都可以尝试这么搜索一下,如果要解决这个问题,就需要向百度搜索资源平台提交验证。(这个是非必须的步骤,因为很多外贸网站的客户并不在中国大陆)
注册并登录百度搜索资源平台:。然后在 用户中心 – 站点管理 下添加网站:
输入https,添加带www的主站,https是因为你的网站配置了SLL认证,这会让你的网站更加安全,在此之前,请一定要完成SLL配置
选择网站所在的领域
然后选择网站验证的方式,这里有文件验证,HTML标签验证,CNAME验证三种方式,我在这个例子里选用我最熟悉的HTML验证(因为百度不支持google tag manager,所以这个强大的工具没法用),这三个方式都可以,没有优劣之分。
HTML验证的操作如下:
HTML标签验证
将以下代码添加到您的网站首页HTML代码的<head>标签与</head>标签之间,完成操作后请点击“验证”按钮。
<meta name=”baidu-site-verification” content=”code-NHueaPl00N” />
为保持验证通过的状态,成功验证后请不要删除该标签
具体操作细节,可以参考我之前的那篇文章 如何在WordPress网站后台插入代码?然后显示验证成功
验证通过后,回到百度后台,选择资源提交-普通收录
提交网站地图,并提交。如果是wordpress网站,可以通过yogast SEO这个工具,格式一般都是 www. 域 .com/sitemap.xml
提交成功后,下方显示等待。可以第二天再来看是否完全成功。将你的wordpress网站提交到百度搜索资源平台并不是一个必须的步骤,特别是当你的网站是一个外贸网站的时候,我做这个动作的原因在于我的这个网站的访客读者包括中国大陆的用户,所以,我希望可以向百度这个搜索资源验证并反映我的存在,进而扩大用户群,请各位按需出发。