纯代码实现熊掌号H5页面结构化改造

熊掌号为百度搜索新产品,即原百度官方号,百度熊掌号是站长、自媒体、开发者、商家等各种内容和服务提供者入驻百度的身份账号,该账号可实现包括百度搜索资源平台、百度数据开放平台、百家号自媒体平台、用户运营平台等各类平台的能力互通。

纯代码实现熊掌号 H5 页面结构化改造

首先我们需要根据百度熊掌号后台的“页面改造”里的提示先给自己的站点做个小小的改造以便百度熊掌号可以快速的识别和运用我们站点的链接数据,比如搜索结果中以结构化样式展现等

熊掌号改造

页面改造最重要的其实就是添加 JSON_LD 数据了,其实可以用下面的代码来实现:

//获取文章/页面摘要
function fanly_excerpt($len=220){
 if ( is_single() || is_page() ){
 global $post;
 if ($post->post_excerpt) {
 $excerpt = $post->post_excerpt;
 } else {
 if(preg_match('/<p>(.*)<\/p>/iU',trim(strip_tags($post->post_content,"<p>")),$result)){
 $post_content = $result['1'];
 } else {
 $post_content_r = explode("\n",trim(strip_tags($post->post_content)));
 $post_content = $post_content_r['0'];
 }
 $excerpt = preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,0}'.'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s','$1',$post_content);
 }
 return str_replace(array("\r\n", "\r", "\n"), "", $excerpt);
 }
}
//优先获取文章中的三张图,否则依次获取自定义图片/特色缩略图/文章首图 last update 2017/11/23
function fanly_post_imgs(){
 global $post;
 $content = $post->post_content;
 preg_match_all('/<img .*?src=[\"|\'](.+?)[\"|\'].*?>/', $content, $strResult, PREG_PATTERN_ORDER); 
 $n = count($strResult[1]); 
 if($n >= 3){
 $src = $strResult[1][0].'","'.$strResult[1][1].'","'.$strResult[1][2];
 }else{
 if( $values = get_post_custom_values("thumb") ) { //输出自定义域图片地址
 $values = get_post_custom_values("thumb");
 $src = $values [0];
 } elseif( has_post_thumbnail() ){ //如果有特色缩略图,则输出缩略图地址
 $thumbnail_src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),'full');
 $src = $thumbnail_src [0];
 } else { //文章中获取
 if($n > 0){ // 提取首图
 $src = $strResult[1][0];
 }
 }
 }
 return $src;
}

百度熊掌号在 Json_LD 数据里面是支持单张缩略图和三张缩略图的样式,所以上述代码会优先获取文章中的三张图,否则依次获取自定义图片/特色缩略图/文章首图。

建议大家把以上两段代码添加到你需要接入熊掌号的 WordPress 站点主题的 functions.php 文件中,然后继续:

<?php
if(is_single()){
 echo '<script type="application/ld+json">{
 "@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld",
 "@id": "'.get_the_permalink().'",
 "appid": "这里请填写熊掌号 ID",
 "title": "'.get_the_title().'",
 "images": ["'.fanly_post_imgs().'"],
 "description": "'.fanly_excerpt().'",
 "pubDate": "'.get_the_time('Y-m-d\TH:i:s').'"
}</script>
';}
?>

将上述代码添加在你的 WordPress 主题的 header.php 文件合适的位置,以上代码还做了一个 if 判断,只让该段代码在文章中输出。

关于 WordPress 接入百度熊掌号的 Json_LD 数据代码改造就给大家分享到这里了吧。

沈唁志|一个PHPer的成长之路! 原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:纯代码实现熊掌号H5页面结构化改造

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小特工作室

DataWindow.Net组件示例(全部开源)

1概述 1.1功能简介 Sybase公司的PowerBuilder开发工具,在以前VS工具没有成事以前,是相当风光的.微软都要与其合作,学习它Db方面的技术,才...

29310
来自专栏JavaEdge

JDK7新特性概览JSR292:支持动态类型语言(InvokeDynamic)G1 垃圾回收器(Garbage-First Collector)JSR334:小的语言改进(Project Coin)核

70810
来自专栏有趣的django

CRM客户关系管理系统(十一) 第十一章、学员报名流程开发

2810
来自专栏张俊红

爬虫进阶(二)

总第66篇 在前面的几篇推文中我们分享了最基础的爬虫入门,以及基于AJAX的爬虫入门,这篇我们分享关于如何利用selenium对目标网页进行数据爬取的。 01|...

3708
来自专栏北京马哥教育

LaTeXila:Linux 的多语言 LaTeX 编辑器简介

豌豆贴心提醒,本文阅读时间7分钟 LaTeXila 是一个多语言 LaTeX 编辑器,专为那些偏爱 GTK+ 外观的 Linux 用户设计。这个软件除了操作简...

3529
来自专栏张善友的专栏

在你的网站集成Wiki系统 WikiPlex

Wikiplex 是一种在 .NET Framework 上所开发,具有处理 Wiki 编辑宏功能的小型函式库组件,它提供了数种编辑样式的格式,以让使用者可以类...

2208
来自专栏编程之旅

微信小程序——城市/区县定位选择组件

前两天在实现一个城市选择器的需求的时候,在github上看到了BeijiYang同学的开源项目,觉得做的非常不错,不过是基于原生小程序写的,所以就花了点时间把他...

1.1K5
来自专栏前端小吉米

冲顶大会有前端什么事吗?

4755
来自专栏進无尽的文章

扒虫篇- Bug日志 Ⅷ

不执行的原因是 在VC中使用这个ImageUploaderManager时,需要设置为全局变量,如果是局部变量的话,很快会被销毁掉,其中的代理自然不会执行了。

1913
来自专栏游戏杂谈

设置Images.xcassets后启动仍旧黑屏的问题

换了XCode6之后,发现以前写Icon-76.png这样很麻烦,就使用了Image.xcassets,公司所有测试机跑了一下,发现没什么问题。唯独有一台设置有...

1562

扫码关注云+社区

领取腾讯云代金券