WordPress秒变谷歌AMP加速移动页面并自动推送教程

2018年3月10日11:37:07 发表评论 1,040

谷歌 AMP(Accelerated Mobile Pages)字面意思就是“加速移动网页”,官方解释是:Accelerated Mobile Page (AMP) 是根据开放源代码规范设计的网页。经过验证的 AMP 网页会缓存在 Google 的 AMP 缓存中,从而可以更快速地呈现给用户。

AMP 页面是大大简化了移动页面,旨在提高针对移动页面的访问速度,AMP 的特点如下:

  • AMP 的 HTML 代码是标准 HTML 的一个子集,大大简化了 html 的代码,部分 Html 代码将不再适用,如 table,frame 等。
  • 大大简化 css,且只能写在 HTML 中,不能调用外部 CSS 文件。
  • JS 大部分功能不能用了,但很多互动功能也就没了,虽然影响了丰富的交互,但速度提升了速度。
  • 加强对页面资源控制,比如图片、视频等用户下拉到图片时再加载。
  • 充分利用高速缓存,Google 将 AMP 页面缓存在自身的服务器上。

AMP for WordPress 插件下载:

百度网盘

官方下载

WordpPress 后台搜索安装并启用 AMP 插件后,插件会自动为文章页创建一个 AMP 文章页面,页面链接 URL 是在原页面的链接 URL 加上“?amp”,文章页面链接 URL 是在原页面的链接 URL 加上“/amp”,以本博客文章链接为例:

原文章页面链接:
//https://www.eyuyun.com/63.html
AMP 页面的链接:
//https://www.eyuyun.com/63.html?amp

如果站点是在页面原有的 URL 后面加上/amp 或?amp 来达成 AMP 页面的,那么我们有必要禁止除百度和谷歌之外的搜索引擎抓取这些 amp 页面

如果百度和谷歌都是共用一套 AMP 页面,那么 robots.txt 可以这样写:

User-agent: baiduspider
Allow: /amp
Allow: ?amp
User-agent: googlebot-mobile
Allow: /amp
Allow: ?amp
User-agent: *
Disallow: /amp
Disallow: ?amp

如果百度用 MIP 页面,谷歌用 AMP 页面,那么 robots.txt 可以这样写:

User-agent: baiduspider
Allow: /mip
Allow: ?mip
User-agent: googlebot-mobile
Allow: /amp
Allow: ?amp
User-agent: *
Disallow: /mip
Disallow: ?mip
Disallow: /amp
Disallow: ?amp

在发布文章或者页面时自动主动推送提交AMP页面的,只需要将以下代码添加到当前主题的functions.php文件最后一个?>的前面即可:

/**
 * WordPress 秒变谷歌 AMP 加速移动页面并自动推送
 * @authors ShenYan (52o@qq52o.cn)
 * @date 2018-03-07 10:12:38
 */
if(!function_exists('Baidu_amp')){
    function Baidu_amp($post_ID) {
        //已成功推送的文章不再推送
        if(get_post_meta($post_ID,'Baiduamp',true) == 1) return;
        $url = get_permalink($post_ID);
		if(get_post_type($post_ID)=='page'){
		$url=$url.'?amp';
		}
		if(get_post_type($post_ID)=='post'){
		$url=$url.'/amp/';
		}
        $api = 'http://data.zz.baidu.com/urls?site=网站首页地址&token=密钥&type=amp';
        //登录百度搜索资源平台 >> 网站支持 >> 数据引入 >> MIP&AMP >> AMP 下方的数据提交就能看到 AMP 推送接口调用地址
        $request = new WP_Http;
        $result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') );
        $result = json_decode($result['body'],true);
        //如果推送成功则在文章新增自定义栏目 Baiduamp,值为 1
        if (array_key_exists('success_amp',$result)) {
            add_post_meta($post_ID, 'Baiduamp', 1, true);
        }
    }
    add_action('publish_post', 'Baidu_amp', 0);
}
    
weinxin
官方QQ交流群
扫一扫加入交流群获取更多资源

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

私信给楼主