本文并非介绍如何折腾Mip页面的适配和改造。「喵斯基」进行熊掌号的改造来主要是以提升网站页面的展现和收录为目的,此文主要记录Typecho接入熊掌号的相关步骤。
熊掌号改造
首先在post.php
文件中先找到类似这样的一行代码<?php $this->need('component/header.php'); ?>
。在这行代码的后面加入一行代码:
<link rel="canonical" href="<?php $this->permalink() ?>"/>
复制下面代码,将代码放在主题文件 footer.php
里的</body>
标签的上面,不用紧贴着放 :
<?php if ($this->is('post')) : ?>
<!--文章页的熊掌号改造-->
<script type="application/ld+json">{
"@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld",
"@id": "<?php $this->permalink() ?>",
"appid": "替换成你的熊掌号ID",
"title": "<?php $this->title() ?>",
"images": ["<?php $this->attachments(1)->attachment->url(); ?>"],
"pubDate": "<?php $this->date('Y-m-d\TH:i:s'); ?>"
}</script>
<?php endif; ?>
上面的代码中<?php $this->attachments(1)->attachment->url(); ?>
获取图片调用的是文章的第一个附件,有一个不足的地方就是文章必须要以附件的方式添加图片,如果没有添加会造成空白页面about:blank
的问题。
然后,在header.php
中添加以下熊掌号ID声明内容:
<!-- 蛋疼的位置 熊掌号ID声明 -->
<script src="//msite.baidu.com/sdk/c.js?appid=熊掌号ID"></script>
这行js
代码必须放在header.php
文件中,“紧贴</head>
标签放置。
数据提交(插件)
自动推送有现成的插件:BaiduSubmit
虽然已经很久没有更新版本,但是由于熊掌号的 API 推送是兼容站长平台的链接提交的,所以插件是支持提交数据的。
在百度熊掌号的“API提交”里的“新增内容接口”里获取「推送接口」链接,然后在 Typecho 的 BaiduSubmit 插件设置里的「接口调用地址」里使用上面的百度熊掌号「推送接口」链接。
最后,点击保存即可。
数据提交(纯代码)
熊掌号后台并不支持手动提交历史文章
,此方法使用了php的方式进行数据提交,通过获取 Sitemap 的链接来获取全站的链接(因此安装sitemap插件是个必要前提),然后填入推送接口即可实现批量提交历史文章,此程序还会反馈被提交的链接和推送反馈情况。
PHP代码
下方代码以获取sitemap中的链接进行推送目的,请并保存为push.php
(随便你们怎么命名),然后上传到网站根目录,访问一次表示推送一次。
<?php
/*配置区域 请修改这里的区域保证正常运行*/
$api = '输入站长平台的推送接口';
$content = file_get_contents('输入站点Sitemap的完整地址');
/*配置区结束 下方为处理区域*/
preg_match_all('/<loc>(.*?)<\/loc>/', $content, $out, PREG_PATTERN_ORDER);
echo "<pre>";
print_r($out[0]);
echo "</pre>";
$urls = $out[0];
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;
?>
下方代码以获取url.TXT文件中的链接进行推送目的,请并保存为push.php
(随便你们怎么命名),然后上传到网站根目录,访问一次表示推送一次。
<?php
$str = file_get_contents('urls.txt');//将整个文件内容读入到一个字符串中
$str_encoding = mb_convert_encoding($str, 'UTF-8', 'UTF-8,GBK,GB2312,BIG5');//转换字符集(编码)
$arr = explode("\r\n", $str_encoding);//转换成数组
//去除值中的空格
foreach ($arr as &$row) {
$row = trim($row);
}
unset($row);
//得到后的数组
echo "<pre>";
var_dump($arr);
echo "</pre>";
$api = '输入站长平台的推送接口';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $arr),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;
?>
crontab任务设置
如果觉得手动执行麻烦又恰好你的服务器支持SSH,那么你可以配合 Linux 系统的 crontab 任务工具,定时curl
请求 php 文件。
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
00 2 * * * root /usr/bin/curl https://www.yourdomain.com/push.php
*表示:每个凌晨2点执行请求一次。
常用推送接口
熊掌号历史文章内容提交:http://data.zz.baidu.com/urls?appid=填写APPID&token=填写准入密钥&type=batch
熊掌号新发文章内容提交:http://data.zz.baidu.com/urls?appid=填写APPID&token=填写准入密钥&type=realtime
注:熊掌号新发的文章和以前的文章需要使用不同接口进行推送(不然会被打屁屁)
百度搜索资源平台(原站长平台)常规数据提交:http://data.zz.baidu.com/urls?site=站点链接&token=准入密钥
注:MIP内容提交本程序暂时无法做到,就等其他人出手搞MIP的推送吧
熊掌号原创文章保护链接提交:http://data.zz.baidu.com/urls?appid=填写APPID&token=填写准入密钥&type=realtime,original
注:这个就比较233了,文章发布之后必须五分钟之内使用这个提交过去,或者是直接飞奔去熊掌号后台进行手动提交,对了有一点,如果你站点并不是全都是原创文章的话,原创保护链接提交对于这个程序来说是不适用的 还是推荐去熊掌号后台提交
相关推荐
- Typecho 启用 Service Workers 浏览器缓存加速首屏访问
- TpCache:为 Typecho 配置 Redis 缓存加速(支持密码登录)
- typecho获取所有标签制作标签云页面
- Typecho主题Handsome自定义添加表情包
- 关于搜索引擎爬虫抓取页面的两大规则(抓取策略图解)
- 百度只收录了一个首页是什么原因,怎么办?
文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/154.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。
已操作完,留个记号,感谢
非常兴奋的告诉你 熊掌号已经黄了
我知道已经黄了啊;
现在能用的好像只有那个 收录了吧,其他的关注,粉丝,貌似都没啥用了
MIP还是可以的,对收录有帮助。
MIP,是要用那个 插件吗?
现成的轮子,直接用插件就行。
已弄完,感谢博主啦,哈哈哈哈哈