奇妙数据

AMP/MIP For Typecho插件优化记录
AMP/MIP插件For Typecho是一款能直接生成符合百度mip标准和谷歌amp标准网页的插件,极大地方便了...
扫描右侧二维码阅读全文
11
2018/10

AMP/MIP For Typecho插件优化记录

AMP/MIP插件For Typecho是一款能直接生成符合百度mip标准和谷歌amp标准网页的插件,极大地方便了网页进行mip和amp改造的过程,但是在使用中遇到了几个问题,特此记录一下,如果有遇到相同问题的可以按照本网页提供的方法进行修复

问题1:mip页面成功生成,但是刷新后网页出现空白

  • 问题现象
    在网上找了一个其他网站测试,发现也存在这个问题,具体可以看下面的图片

amp问题1.gif

  • 网络抓包发现对方网站的php版本为5.4,和我之前出问题的为同一版本
    amp错误5.png
  • 解决方案
    amp问题2.png

问题可能是某些字符未别成功解析,我的解决方案是将php版本从5.4更换为5.6,成功解决此问题,有此问题出现的用户可以参考解决

问题2:部分页面在百度mip在线校验验证失败,提示不符合JSON-LD格式要求(共1处错误)

  • 问题现象
    amp错误3.png
  • 解决方案
    amp错误4.gif

可以从校验结果中发现,由于文章中存在多余的英文状态下的双引号而造成冲突,解决方法是在amp插件里将双引号替换为单引号再输出

  • 修改amp插件目录里的Action.php文件,在private static function cleanUp($desc)里添加如下代码$desc= str_replace("\"", "'", $desc);
  • 添加后的效果
    private static function cleanUp($desc){
        $desc= str_replace("\"", "'", $desc);
        $desc= str_replace(array("\r\n", "\r", "\n"), "", strip_tags($desc));
        $desc = str_replace(PHP_EOL, '', $desc);
        $desc=mb_substr($desc, 0, 150).'...';
        return $desc;
    }

问题3:由于换行符未被替换掉而被百度mip校验失败

  • 问题原因,插件中的换行符替换代码是这么写的$desc= str_replace(array("/r/n", "/r", "/n"), "", strip_tags($desc));
    amp错误6.png
  • 但是php中实现替换换行符应该这样写$desc= str_replace(array("\r\n", "\r", "\n"), "", strip_tags($desc));对应修改一下即可
    amp错误7.png
最后修改:2018 年 10 月 24 日 12 : 46 AM
如果觉得我的文章对你有用,请随意赞赏

1 条评论

  1. 妙数

    2018年10月12日,作者已第一时间更新插件修复问题,有问题的直接更新插件!插件网址:https://holmesian.org/AMP-for-Typecho
    下面引用amp插件作者回复内容"@奇妙大数据
    感谢反馈!问题1的话,README里已经注明建议在PHP 5.6+环境使用该插件。
    问题2、3已经完善: https://github.com/holmesian/Typecho-AMP/commit/1ab2103bc584de143a2f9e1a62bd9b79491c6ffe 。
    还请测试……"

发表评论