WordPressMIP页面接入百度官方号
为解决移动时代H5网站单一的流量+广告变现模式,与用户转化渠道缺失问题,百度搜索团队持续探索新模式,推出官方号功能。使用此功能可以在移动端搜索页面获得个性化的寻址卡片及对站内数据进行结构化展示。在移动端搜索流量日益重要的今天,网站在移动端获得个性展示的优势无疑能提高网站的SEO优化,为网站引来更多的用户流量,虽然百度站长平台有关于如何引入官方号数据的教程,不过对于一些用户来说还是比较晦涩难懂的,所以下面将结合WordPress详细谈谈如何将网站接入百度官方号。
接入官方号的页面必须是H5页面或者MIP页面。所以在接入之前,用户需搭建好自己WordPress所对应的移动端页面的主题。在接入的过程中,需要对接入的页面主题进行改造,因为MIP将会使移动端未来的主流,这里仅就MIP页面如何改造进行详细的说明。
一、在MIP页面添加添加canonical标签
<link rel="canonical" href="http(s)://xxx"/>
canonical标签的作用是指向MIP页面所对应的PC页面,通过该标签会告诉搜索引擎MIP页面的来源PC页,从而不会丢失搜索引擎对PC页面的权重。canonical标签是MIP页面的规范,在搭建MIP页面的时候必须使用这个标签,否则不能通过MIP的代码校验。所有WordPress的MIP主题都会在主题内的header文件带有这个标签。
在实际的操作过程中,由于网站内部的链接数量不是一个小的数目,手动将其一一替换并不现实,所以需要用到如下php代码来进行变量替换:
<?php
if(is_home()){
echo '<link rel="canonical" href="'.str_replace('mip.localhost.com','localhost.com',get_bloginfo('url')).'" />'."\n";
}else
if(is_tax() || is_tag() || is_category()){
$term = get_queried_object();
echo '<link rel="canonical" href="'.str_replace('mip.localhost.com','localhost.com',get_term_link( $term, $term->taxonomy )).'" />'."\n";
}else
if(is_page()){
echo '<link rel="canonical" href="'.str_replace('mip.localhost.com','localhost.com',get_permalink()).'" />'."\n";
}else
if(is_single()){
echo '<link rel="canonical" href="'.str_replace('mip.localhost.com','localhost.com',get_permalink()).'" />'."\n";
}
?>
将此段代码添加到MIP主题的header.php页面。使用此代码只需将mip.localhost和localhost替换成用户自己的MIP页面地址和PC地址即可,代码执行的过程中会将PC网页内所有链接一一替换成MIP网页相对应的链接。
二、添加Json_LD数据
以下是官方示例: 百度官方号通过示例简单的能看出来,Json_LD数据是将MIP页面进行结构化信息展示所必须填写的数据。它将会告诉搜索引擎该页面的文章标题和文章内容摘要及文章发布时间,通过该数据能很好的对页面信息进行展示及保护原创内容。但是同样的,每个页面的标题和摘要都是不一样的,也不可能手动去操作,我们依然需要使用php代码来动态提取这些变量。
首先将以下代码添加进MIP主题的function.php文件中:
//获取文章/页面摘要
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);
}
}
//优先获取文章中的三张图,否则依次获取自定义图片/特色缩略图/文章首图
function fanly_post_imgs(){
global $post;
$content = $post->post_content;
preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim', $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;
}
然后将此段代码添加进header.php文件中:
<?php
if(is_single()){$original= get_post_meta(get_the_ID(),'original',true) ?',"isOriginal": "1"':'';
echo'<script type="application/ld+json">{"@context":
"[https://zhanzhang.baidu.com/contexts/cambrian.jsonld](https://zhanzhang.baidu.com/contexts/cambrian.jsonld)",
"@id":"'.get_the_permalink().'",
"title":"'.get_the_title().'",
"images": ["'.fanly_post_imgs().'"],
"description":"'.fanly_excerpt().'",
"pubDate":"'.get_the_time('Y-m-d\TH:i:s').'"
'.$original.'
}</script>
';}
?>
进行完以上操作后,即可在页面的head头部对每个链接中的文章标题,文章内容,发布时间等数据进行提取展示。
三、添加关注功能代码
百度官方号
此功能在百度官方页面并未说明是需要必须选择的,但是在实际操作中发现,若未使用此功能,将无法接入官方号数据。
此功能实现起来比较简单,将以下代码添加进MIP主题文件的footer.php页面的</body>标签之前:
<script src="[https://mipcache.bdstatic.com/extensions/platform/v1/mip-cambrian/mip-cambrian.js](https://mipcache.bdstatic.com/extensions/platform/v1/mip-cambrian/mip-cambrian.js)"></script>
<mip-cambrian site-id="ID"></mip-cambrian>
将ID修改为用户的官方号ID即可。
写在最后:
百度官方号是专为移动端搜索提供的一个新项目,所以在操作之前,需要保证自己的WordPress有一套手机专属的页面,当前比较流行的仅使用一套模板实现自适应的WordPress主题是无法进行此项操作的。
文章来自www.52aite.cn