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

谷歌 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://qq52o.me/1921.html
AMP 页面的链接:
//https://qq52o.me/1921.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);
}

沈唁志|一个PHPer的成长之路! 原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:WordPress秒变谷歌AMP加速移动页面并自动推送

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏写写代码吃吃瓜

Android调试神器stetho使用详解和改造

41360
来自专栏码洞

如何优雅的关闭Go Channel【译】

不要在消费端关闭channel,不要在有多个并行的生产者时对channel执行关闭操作。

29240
来自专栏杨建荣的学习笔记

通过Xtrabackup日志来恢复检查点文件

最近积压了很多朋友的问题,我想起来的时候就回复一下,别见怪,不是我有势利眼。 前几天有个朋友问我的问题,是在xtrabackup的时候,没有特别保留checkp...

30560
来自专栏李蔚蓬的专栏

VMware Workstation14.1.3 & Ubuntu18.04从安装到实用的填坑之路

本机VMware Workstation环境是上学期安装的,拿的老师给的安装包,版本10.0.1。顺便装了个Ubuntu15.10。

18210
来自专栏腾讯Bugly的专栏

QUIC协议初探-iOS实践

| 导语 本文主要介绍了QUIC协议,以及初步研究的过程,用实践证明了QUIC协议在iOS平台的可行性 1、QUIC介绍 (1)QUIC(Quick UDP I...

1.4K60
来自专栏DeveWork

让WordPress 在RSS 中Feed 输出支持“More”标签

如果你的主题支持“more”标签,在写文章的时候加上“more”标签,首页就可以截断显示。“more”标签截断文章的意义在于能够随心所欲,想断就断(汗,越写越废...

21850
来自专栏二次元

瞎折腾-友情链接自助申请

采用Bootstrap UI库的栅格系统进行布局,毕竟咱不是专业的前端,能搞成这样就不错了。

13900
来自专栏蓝天

C/C++编程可用的Linux自带工具

GNU Binary Utilities或binutils是一整套的编程语言工具程序,用来处理许多格式的目标文件。当前的版本原本由在Cygnus Soluti...

15020
来自专栏腾讯云TStack专栏

《 大话 Ceph 》 之 PG 那点事儿

《大话 Ceph 》系列文章通过通俗易懂的语言并结合基础实验,用最简单的描述来讲解 Ceph 中的重要概念。让读者对分布式存储系统有一个清晰的理解。

2.3K30
来自专栏c#开发者

MAC系统 华为EC1261 3G上网方法

插上上网卡以后自动加载一个光盘映像   运行里面的程序把该装的都装了就可以了 至于那个系统自带的拨号程序 完全是废柴   打开网络设置 创建一个新服务   下拉...

29540

扫码关注云+社区

领取腾讯云代金券