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

时间:2022-05-30
本文章向大家介绍纯代码实现熊掌号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("rn", "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-dTH:i:s').'"
}</script>
';}
?>

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

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

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