AMP/MIP插件For Typecho

之前心血来潮暴力实现了AMP页面,本来只是自己瞎折腾一下。结果发现还是有不少TX有这个需求,于是利用今天从福州回来车上的时间将AMP页面做成了插件,有需要的TX可以去Github上自取

由于是第一次做Typecho的插件,所以有什么问题请反馈,我好及时修复。

嗯,就这样,平潭的风真的好大……

amp-mip.jpg


哦,对了,如果之前已经用过模板暴力修改法的TX(尤其是已经被Google收录了的),请做如下修改:

post.php增加跳转


    <?php if (isset($_GET['amp'])){;
        header('HTTP/1.1 301 Moved Permanently');
        Header("Location: https://holmesian.org/amp/{$this->request->slug}");
        exit();
        ?>
    ...

header.php中删除下列内容

    <?php if ($this->is('post')): ?>
    <link rel="amphtml" href="<?php $this->permalink() ?>?amp=1">
    <?php endif; ?>

「倘若有所帮助,不妨酌情赞赏!」

Holmesian

感谢您的支持!

使用微信扫描二维码完成支付


相关文章

发表新评论
已有 250 条评论
  1. 小小

    文章有些不足更新完再提交会不会有重复的问题?

    小小 回复
  2. 阿业Hub

    博主你好,从后台批量提交URL,每次提交的时候都会把所有文章链接都提交吗? 如果只想提交一条,是不是只能手动去提交?

    阿业Hub 回复
  3. 友人E

    大佬赞赏哪个怎么做的啊

    友人E 回复
  4. youtonghy

    大佬,谷歌说所引用的 AMP 网址指向非 AMP 网址怎么处理?谢谢

    youtonghy 回复
  5. cipher

    大佬,关于这个插件有个问题要请教,方便给个联系方式吗,我qq512166266,如能有空帮忙,有偿报酬

    cipher 回复
    1. Holmesian

      @cipher

      有什么需求直接说吧。

      Holmesian 回复
      1. cipher

        @Holmesian

        我的自动提交不好用 提示如下:

        对不起, 您的主机不支持远程访问。
        请检查 curl 扩展、allow_url_fopen和防火墙设置!
        出错信息:Unknown Host

        但是我的curl allow_url_fopen开启了,防火墙也关闭了,实在找不到原因。

        系统是CentOS Linux 7.2.1511

        环境是Nginx openresty + php7.2 + mysql5.6 + typecho1.1

        cipher 回复
        1. Holmesian

          @cipher

          Unknown Host 说明 PHP 进行 DNS 解析失败,请检查一下 PHP 进程对外 DNS 请求的相关配置。

          Holmesian 回复
  6. cipher

    大佬,关于这个插件有个问题要请教,方便给个联系方式吗,我qq512166266,如能有空帮忙,有偿报酬

    cipher 回复
  7. 凉宫长门

    这里的图片非本地的,拉伸太严重了,默认高度太大了

    凉宫长门 回复
  8. Billyy

    错误提示:Array ( [remain] => 5000000 [success] => 0 [not_same_site] => Array ( [0] => https://billyy.cn/mip/12.html [1] => https://billyy.cn/mip/10.html [2] => https://billyy.cn/mip/9.html [3] => https://billyy.cn/mip/7.html ) )

    这是什么情况呢大神

    Billyy 回复
    1. Holmesian

      @Billyy

      这个“ not_same_site”错误提示指的是“站点未在站长平台验证”,你验证的网站和你用的域名不相符。

      参见 推送反馈 一章:https://zy.baidu.com/academy/detail?id=267&page=2

      Holmesian 回复
  9. 彭

    插件无法安装呀,不是有一个有效的插件, WordPress 5.1

    回复
    1. hello

      @彭

      这是typecho的插件,wordpress当然不能用

      hello 回复
  10. 彭

    插件无法安装呀,不是有一个有效的插件, WordPress 5.1

    回复
  11. Messy

    新年快乐!用上了老大的插件,效果很好,百度自动提交也设置了,非常方便~欢迎回访

    Messy 回复
  12. 小白

    遇到一个问题,不管是访问mip文章页面还是amp文章页面都会自动跳回到原来文章页面,但是主页不会

    小白 回复
    1. Holmesian

      @小白

      插件设置里有一个 “是否只允许Baidu和Google的爬虫访问MIP/AMP页面”,请设置成“不开启”

      Holmesian 回复
  13. F6YK

    为啥从百度里访问的页面有的是百度自带的转码界面,有的是正常博客界面,就是没有插件转码的amp界面。但是插件生成的界面都可以访问。是不是哪里出问题了。(◔◡◔)

    F6YK 回复
    1. Holmesian

      @F6YK

      搜索引擎收录页面是需要一定时间的,已经收录的页面搜索引擎不来抓取的话并不知道你添加了新的amphtml/miphtml标签,所以自然不会在结果中现实。
      你可以通过站长助手的手动提交链接功能来加速收录过程,但是百度表示不保证一定会收录。

      Holmesian 回复
  14. 雨致

    无法启用插件
    exception 'Typecho_Widget_Exception' with message '无法启用插件' in /www/wwwroot/w3cb.cn/var/Widget/Plugins/Edit.php:98
    Stack trace:

    0 /www/wwwroot/w3cb.cn/var/Widget/Plugins/Edit.php(308): Widget_Plugins_Edit->activate('Typecho-AMP-mas...')1 /www/wwwroot/w3cb.cn/var/Widget/Do.php(82): Widget_Plugins_Edit->action()2 /www/wwwroot/w3cb.cn/var/Typecho/Widget.php(221): Widget_Do->execute()3 /www/wwwroot/w3cb.cn/var/Typecho/Router.php(135): Typecho_Widget::widget('Widget_Do', NULL, Array)4 /www/wwwroot/w3cb.cn/index.php(23): Typecho_Router::dispatch()5 {main}
    雨致 回复
    1. Holmesian

      @雨致

      应该根你的数据库环境有关系,非mysql数据库请在后台关闭MIP/AMP页面缓存的功能。(缓存时间设置为0)

      Holmesian 回复
  15. Healer

    作者你好,觉得这个插件非常的好,但是不知道为什么,我mip,或者amp的文章访问速度很慢,感觉明显低于正常文章页面,另外,这个评论框拉的有点累੯‧̀͡u

    Healer 回复
    1. Holmesian

      @Healer

      1、是有图的页面慢,还是所有的MIP/AMP页面都慢?

      2、我把评论框提到评论前面来了。

      Holmesian 回复
      1. 西原

        @Holmesian

        好像都比较慢,可否将mip,amp页面改成爬虫正常访问,人类访问自动跳转原页面

        西原 回复
        1. Holmesian

          @西原

          0.7.4版的插件后台设置里一个 是否只允许Baidu和Google的爬虫访问MIP/AMP页面 打开就是你要的效果

          Holmesian 回复
      2. 西原

        @Holmesian

        好像都比较慢,可否将mip,amp页面改成爬虫正常访问,人类访问自动跳转原页面

        西原 回复
  16. auniceo

    你好,我没有填写百度统计tocken,其他都已经按照要求填写了,填写之后,我使用了,推送到MIP 与推送带熊掌号的功能。

    但是之后,我的熊掌好显示我今天还可以推送10条,也就是并没有变。我想询问一下,这是怎么回事尼,。

    auniceo 回复
    1. auniceo

      @auniceo

      是因为提交到了历史内容接口么。可是插件里面并不能选择type=batch或者type=realtime

      auniceo 回复
      1. Holmesian

        @auniceo

        新发的博文自动到realtime接口,手动的批量提交是batch模式。 熊掌号的要求是realtime接口只能提交当天新产生的内容。

        Holmesian 回复
  17. OceanicKang

    由于我使用了自定义永久链接,插件无法解析。https://blog.oceanickang.com/amp_sitemap.xml
    我的自定义永久链接格式是 /{directory}_{slug}_{year}_{month}_{day}.html
    请问这个该如何处理

    OceanicKang 回复
    1. Holmesian

      @OceanicKang

      请更新0.7.3版本,解决了你提出的问题。

      Holmesian 回复
      1. OceanicKang

        @Holmesian

        哇,这么迅速。谢谢大佬!

        OceanicKang 回复
        1. Holmesian

          @OceanicKang

          刚才想到一个更好的办法,彻底地解决了自定义链接的解析问题。
          如果有空的话可以更新到0.7.4。

          Holmesian 回复
  18. 奇妙大数据

    你好,我在使用amp插件过程中发现了三个问题并已经将解决方案记录下来,其中双引号冲突导致百度mip校验失败的问题可以关注并优化一下。
    具体在这里:https://www.mioshu.com/archives/100.html

    奇妙大数据 回复
    1. Holmesian

      @奇妙大数据

      感谢反馈!

      问题1的话,README里已经注明建议在PHP 5.6+环境使用该插件。
      问题2、3已经完善: https://github.com/holmesian/Typecho-AMP/commit/1ab2103bc584de143a2f9e1a62bd9b79491c6ffe 。
      还请测试……

      Holmesian 回复
  19. 博主你也是福建平潭人?

    这个插件有的人已经支持php7.2了,咋弄的都不知道联系不上,博主你也是平潭的?老乡啊,你的技术没得说,真牛掰

    博主你也是福建平潭人? 回复
    1. Holmesian

      @博主你也是福建平潭人?

      这个插件在7.2下运行正常的。 我不是平潭的,只是在从平潭返程的车上做的这个插件

      Holmesian 回复
  20. Argiri

    自动提交链接报错:错误提示:Array ( [remain] => 5000000 [success] => 0 [not_same_site] => Array ( [0] => https://argiri.net/amp/10 [1] => https://argiri.net/amp/9 [2] => https://argiri.net/amp/8 [3] => https://argiri.net/amp/7 [4] => https://argiri.net/amp/5 [5] => https://argiri.net/amp/1 ) )

    望在闲暇时回复,感谢!

    Argiri 回复
    1. Argiri

      @Argiri

      Array ( [error] => 401 [message] => site error )
      链接改正确后又为这个报错!

      Argiri 回复
      1. Holmesian

        @Argiri

        错误提示 站点未在站长平台验证

        参见 推送反馈 一章:https://zy.baidu.com/academy/detail?id=267&page=2

        Holmesian 回复
  21. Lisa.Su

    作者你好,我在使用的时候发现mip页面图片显示正常,但mipcache却没有图片(比如https://m.baidu.com/paw/c/s/www.iamydp.cn/mip/12.html?tdsourcetag=s_pctim_aiomsg&qq-pf-to=pcqq.c2c中图片是404,但对应的mip页面有图片)。存图片的地方防盗链也没有使用,不知道是怎么回事。。。能解答一下吗,谢谢了

    Lisa.Su 回复
  22. Blokura

    刚刚在熊掌号提交记录看了一下,提示说提交的资源不存在,然后我发现是没有https://的锅,请问怎么样让插件能带https提交呢?我typecho基本里面的地址就是https的

    Blokura 回复
    1. Holmesian

      @Blokura

      1、插件提交的地址是通过后台设置->基本->站点地址和具体的参数构建的,如果不对请检查一下Typecho的后台设置。倘若要修改主域名的话参考一下这个https://holmesian.org/AMP-for-Typecho#comment-7404

      2、因为Typecho在保存草稿的时候就会添加文章,插件钩子无法判断是新增文章还是修改文章,目前暂时是通过文章首次添加(或草稿首次保存)的时间与当前提交的时间之差来判断是否向熊掌号推送:相差在24小时之内就推送,之外就不推送。 简单的说就是文章发出来之后,24小时之内修改都是会推送的。

      等后续有空的时候我来分析一下,看用什么办法来完善这个判断机制。

      Holmesian 回复
    2. Blokura

      @Blokura

      还有就是最新版本也是会重复提交修改的内容,10次配额有6次作废都是因重复提交了

      Blokura 回复
  23. Blokura

    插件很不错,请问插件有日志功能吗?我看不见日志提示正常总感觉我太舒服(つд⊂)

    Blokura 回复
    1. Holmesian

      @Blokura

      日志功能等9月16日考完试后有空的时候我考虑增加吧。

      Holmesian 回复
  24. 她与空白

    熊掌号推送无效,配额不会变!

    她与空白 回复
    1. Holmesian

      @她与空白

      插件设置里自动提交的开关是否打开? 熊掌号相关的参数填写正确吗?

      Holmesian 回复
  25. okgo

    更新到0.6.8 出现这个错误:Call to a member function value() on null

    okgo 回复
    1. Holmesian

      @okgo

      因为删除了一个变量,所以需要先禁用插件再更新插件,否则会出现这个问题。 现在你可以先恢复旧版本禁用插件。

      Holmesian 回复
      1. okgo

        @Holmesian

        我就是先禁用,上传启用的。

        okgo 回复
        1. Holmesian

          @okgo

          先用回0.6.7的插件呢? 设置页面能打开么?

          Holmesian 回复
          1. okgo

            @Holmesian

            现在好了,我重新上传了一遍。
            感谢您的指导。

            okgo
  26. dcdc

    缓存不支持sqlite.安装成功!请进入设置填写接口调用地址
    用起来有影响不

    dcdc 回复
    1. Holmesian

      @dcdc

      没有影响,只是每次访问AMP/MIP的页面都是动态生成的,如果启用了缓存的话TTFB会更小。

      Holmesian 回复
  27. Mr.ChengPing

    博主您好,升级到0.6.6还是百度还是无法效验MIP,另外,一篇文章多次发布会提交多次,这样每天只有10次就会很快用完,能不能写个状态,提交提交的就不再提交了。

    Mr.ChengPing 回复
    1. Holmesian

      @Mr.ChengPing

      1.MIP页面格式我测试过若干个页面后没有发现无法通过校验的情况,请给个页面我再分析一下。2.我更新了一下插件,现在是新发文章才自动提交,修改不再提交了。3.新发文章改为只提交MIP地址。

      Holmesian 回复
  28. EzrealC

    插件在最新开发版1.2(18.1.29)上,后台日志界面报500错误,求解,在1.1正式版上正常工作

    EzrealC 回复
    1. Holmesian

      @EzrealC

      可否提供一下php的错误提示

      Holmesian 回复
      1. EzrealC

        @Holmesian

        刚刚确认了php 有 curl 扩展,并且支持 allow_url_fopen。防火墙开放80和443端口,插件需要特殊端口来进行访问吗?

        EzrealC 回复
        1. Holmesian

          @EzrealC

          检查一下你的 MIP/AMP推送接口调用地址 ,插件中提示的获取方式不对,应该是在https://ziyuan.baidu.com/mip/index页面中,点击 MIP -> 数据提交 -> 提交新数据 获取接口调用地址。

          我现在更新一下说明。

          Holmesian 回复
          1. Holmesian

            @EzrealC

            不客气~ 早点休息吧,晚安。

            Holmesian
          2. EzrealC

            @Holmesian

            我已经回滚到了1.1正式版,问题没有出现了...之前调用地址是没有问题的。谢谢你能够及时回复我

            EzrealC
      2. EzrealC

        @Holmesian

        在博客后台---控制台中,点AMP/MIP自动提交,直接报500服务器内部错误,没有php提示。如果您方便的话,能否加我qq,以便提供更详细的错误信息

        EzrealC 回复
        1. Holmesian

          @EzrealC

          刚在 1.2 (18.1.29)的开发版上测试了一下,没有重现你说的问题。你的1.1和1.2是在相同的服务器环境下吗?

          Holmesian 回复
          1. Holmesian

            @EzrealC

            不需要额外的权限,php 有 curl 扩展或支持 allow_url_fopen

            且防火墙允许外网即可。

            Holmesian
          2. EzrealC

            @Holmesian

            是的,不知是否需要给某些文件夹特定权限?

            EzrealC
  29. 学习笔记Blog

    博主,您好,是否可以考虑在插件后台提供MIP的百度统计代码呢?好像mip页面访问无法统计到的,只能是mip页面里用mip组件才可以!

    学习笔记Blog 回复
    1. Holmesian

      @学习笔记Blog

      已经添加,请更新。

      Holmesian 回复
      1. 学习笔记Blog

        @Holmesian

        收到,万分感谢!

        学习笔记Blog 回复
  30. 猫腻

    访问https://catni.cn/index.php/amp/slug/
    显示500
    Database Query Error
    初用此插件,怎么解决

    猫腻 回复
    1. Holmesian

      @猫腻

      提示是数据库查询语句错误。请问插件用的哪个版本? PHP版本? 数据库的类型和版本?

      Holmesian 回复
      1. 猫腻

        @Holmesian

        有数据库文件?需要导入?

        猫腻 回复
        1. Holmesian

          @猫腻

          不需要导入数据库。因为v0.5.7开始增加了页面缓存功能,会在数据库里新增一个表来存放缓存页面,数据库这块只适配Mysql和SQLite,所以其他的数据库可能会有问题。 等我有空的时候优化一下,加个参数开启精简版。

          Holmesian 回复
  31. okgo

    请教一下,我用的postgresql,怎么改可以建立数据表?

    okgo 回复
    1. Holmesian

      @okgo

      请尝试手工建立数据表,新建数据库的脚本在Plugin.php文件的第158~164行(v0.6.4)。

      Holmesian 回复
  32. MR.cheng

    博主,为什么我百度效验MIP的时候提示:jsonld标签不存在

    MR.cheng 回复
    1. Holmesian

      @MR.cheng

      回车和换行符过滤不充分导致的,请升级到新版本进行测试。

      Holmesian 回复
  33. Rat's

    博主,mip/amp在后台能搞个百度统计代码插入吗?

    Rat's 回复
    1. Holmesian

      @Rat's

      可以在templates目录下的模板文件里直接插入统计代码,MIP/AMP页面有专门的统计代码格式。

      Holmesian 回复
  34. 博博blog

    1.熊掌号的粉丝关注,在线校验工具,提示“JSON 解析失败,格式不合法,可能存在多余的换行,回车,逗号”,
    [img]https://qia.la/images/2018/07/06/xENB0.png[/img]
    然后把description里面的空格回车全部删了
    [img]https://qia.la/images/2018/07/06/xEgrL.png[/img]
    又提示
    [img]https://qia.la/images/2018/07/06/xExGV.png[/img]

    2.熊掌号的自动提交好像没有用,熊掌号的后台10个配额没有消耗,
    好像手动提交才有用。

    博博blog 回复
    1. Holmesian

      @博博blog

      1、刚才测试了一下,格式没有问题,换行会自动去除。发布文章时间如果没有直接去修改的话也没有问题。

      2、熊掌号的自动提交类型名称变了,请更新测试。

      Holmesian 回复
    2. Holmesian

      @博博blog

      1、应该是百度的规则又改了。
      2、百度熊掌号非原创的自动提交接口关闭了。

      这两个问题我有空完善一下,感谢反馈。

      Holmesian 回复
  35. 子午

    PHP已弃用:非静态方法AMP_Action::sendRealtime()不应该在 var/Typecho/Plugin中静态地调用。php在第489行

    子午 回复
    1. Holmesian

      @子午

      还请将环境和原始错误记录发一下。

      Holmesian 回复
    2. Holmesian

      @子午

      不是太明白,还请进一步指教。

      Holmesian 回复
      1. 子午

        @Holmesian

        错误记录里看到了

        子午 回复
  36. 双少

    熊掌号提交貌似不管用了,试了两篇了,配额10,手工提交才管用。

    双少 回复
  37. feixiang

    不支持SQLite数据库吗?提交了几次,启用了几次,都提示:缓存表建立失败,错误代码:HY000
    然后菜单下面就多了10几个AMP-MIP自动提交的按钮。。。

    feixiang 回复
    1. feixiang

      @feixiang

      补充回复下,lighttpd/1.4.31 + php 5.4.45-0+deb7u14 + SQLite3 Ver 3.7.13,
      内存很小的VPS,只能用SQLite3,其次运行在www-data用户组,权限是775。
      然后自己把db数据库拷贝出来,在表里面用SQL,删掉的,
      希望给后面的基友提供一个PHP文件直接运行就能删除的那种。

      feixiang 回复
      1. Holmesian

        @feixiang

        SQLite问题和菜单问题已经修复,请更新。

        Holmesian 回复
  38. 请问

    /**

    WordPress发布文章主动推送到百度,加快收录保护原创【curl_init方式】文章地址:zhangge. n e t/5041.html
    */

    这段代码如何在TYPECHO实现?
    我测试过你的插件,不能实时推送,用函数模板推送更高效一些

    请问 回复
    1. Holmesian

      @请问

      插件设置里有个“是否开启新文章自动提交到熊掌号”,填写好熊掌号的id和密钥后每次发表新文章都可以推送到熊掌号。 主动推送到百度只有提交的url不一样,你可以直接在插件里改。 我有空会再增加一个主动推送到百度的开关。

      Holmesian 回复
  39. modys

    这个AMP插件是否和站点地图sitemap插件冲突,如果安装这个了,地图是否需要卸载

    modys 回复
    1. Holmesian

      @modys

      一般只要不Hook同格式的URL就不冲突,你用的哪个sitemap插件,我看一下。

      Holmesian 回复
  40. 页面不支持第三方插件插的

    不支持第三方插件转换的代码显示

    页面不支持第三方插件插的 回复
  41. 醉仆人

    熊掌号现实提交成功,但是到了熊掌号后台查看并没有提交,这个怎么办

    醉仆人 回复
    1. Holmesian

      @醉仆人

      检查一下提交地址。

      Holmesian 回复
  42. 不暇

    这个插件挺好用的,但是我发现的问题就是,熊掌号提交的时候<?php print($MIPpage'imgData'); ?>直接调用网站logo去了,有没有办法编程调用上传的第一章图片啊。

    不暇 回复
    1. Holmesian

      @不暇

      已经完善,请更新 0.6.1 。

      Holmesian 回复
    2. Holmesian

      @不暇

      默认没有图片的文章调用填写的图片地址,有图片的文章调用第一张图片呀。

      Holmesian 回复
      1. 不暇

        @Holmesian

        问题是我上传了图片附件,没有插入,结果调用了网站的logo,怎么办啊

        不暇 回复
        1. Holmesian

          @不暇

          要插入了文章内容才会提取出来,你的这个需求等我我有空再添加吧。

          Holmesian 回复
  43. 和好客

    自动提交错误提示:
    //----------------------------------------------
    对不起, 您的主机不支持远程访问。
    请检查 curl 扩展、allow_url_fopen和防火墙设置!
    出错信息:Unknown Host
    //----------------------------------------------
    我在服务器看了curl,allow_url_fopen都开启的,本地curl也能获取到页面,防火墙没有设置限制。请教怎么回事呢?

    和好客 回复
    1. Holmesian

      @和好客

      提示的是php环境对外访问时无法完成dns解析,确认防火墙配置没问题的话,试试看检查代理设置。

      Holmesian 回复
    2. Holmesian

      @和好客

      参考:https://github.com/holmesian/Typecho-AMP/issues/10

      Holmesian 回复
      1. mikusa

        @Holmesian

        出现了相同问题,该怎么解决呀……

        mikusa 回复
        1. Holmesian

          @mikusa

          出错信息也是Unknown Host?

          我刚在几个环境都测试了一下,主动提交和新文章自动推送都正常呀。

          Holmesian 回复
        2. Holmesian

          @mikusa

          请先更新到v0.7.1 。

          偶尔会出现可能是所在的服务器环境导致的。

          Holmesian 回复
          1. mikusa

            @Holmesian

            更新到0.7.1了也还是不行,之前都可以提交,但是不知道哪一个版本更新后就一直出错了……

            mikusa
  44. Linger

    Google提示:AMP 文档中不能出现内嵌“style”属性。请改用“style amp-custom”标记。

    Linger 回复
    1. Holmesian

      @Linger

      你的文章是用markdown编辑的吗? 用所见即所得编辑器写的文章因为有内联样式,会有这个提示。

      Holmesian 回复
  45. True

    AMP的地址可以正常访问,MIP是不是没有了?

    True 回复
    1. Holmesian

      @True

      你应该是打开了“是否只允许Baidu和Google的爬虫访问MIP/AMP页面”

      Holmesian 回复
  46. 她空间里的

    是否只允许Baidu和Google的爬虫访问MIP/AMP页面, 这个功能貌似对mip页面不管用了。。。

    她空间里的 回复
    1. Holmesian

      @她空间里的

      已修复。

      Holmesian 回复
  47. 学习笔记Blog

    目前发现在AMP/MIP下好像不支持视频吧?
    https://www.imydl.tech/linux/406.html
    今天发了篇文章首次插入了视频,才发现的!

    学习笔记Blog 回复
    1. 学习笔记Blog

      @学习笔记Blog

      搞定了,修改为<video>完美显示了!

      学习笔记Blog 回复
    2. 她空间里的

      @学习笔记Blog

      支持video标签的。

      她空间里的 回复
      1. 学习笔记Blog

        @她空间里的

        噢,原来如此,我的主题插入的视频是[vplayer]标记的好像!

        学习笔记Blog 回复
  48. 学习笔记Blog

    博主,又得麻烦你了!这个插件可否在后台添加一个指定主域名的设置选项呢,意思就是指定提交到熊掌号的域名可以自由定制!因为我目前的问题是熊掌号绑定的是老域名,博客已经更换为新域名了,熊掌号不支持更换域名目前,只能是提交老域名的才可以被熊掌号接受,因为百度是接受301跳转的,这是允许的,所以我就想着看看能不能给插件提供这样一个功能来怎家一下灵活性!

    学习笔记Blog 回复
    1. Holmesian

      @学习笔记Blog

      已添加

      Holmesian 回复
      1. 学习笔记Blog

        @Holmesian

        谢谢!万分感谢!

        学习笔记Blog 回复
  49. 双少

    导航 文字样式 美化下

    双少 回复
    1. Holmesian

      @双少

      你可以在模板文件自定义css里美化

      Holmesian 回复
  50. 双少

    mip页面 导航 貌似太长

    双少 回复
    1. Holmesian

      @双少

      这是MIP框架提供的导航

      Holmesian 回复
  51. 大师

    缓存表建立失败:HY000,我用的是SQLite数据库,另外控制台备份下面多出六个“AMP/MIP自动提交”!

    大师 回复
    1. Holmesian

      @大师

      那你可能需要手动创建一下数据库。 多出来的菜单在 options下的panelTable表里修改,panelTable默认value为a:0:{}(记得备份原值)。

      Holmesian 回复
      1. 学习笔记Blog

        @Holmesian

        目前好像我博客的MIP和AMP访问都是提示缓存表不存在!郁闷呀!

        学习笔记Blog 回复
      2. 学习笔记Blog

        @Holmesian

        "Base table or view not found: 1146 Table 'mydllnmp.typecho_PageCache' doesn't exist"
        我的MIP和AMP页面访问都是这样提示了好像!

        学习笔记Blog 回复
      3. 学习笔记Blog

        @Holmesian

        有没有typecho_PageCache这个表的SQL文档呀,我导入一下可以不?

        学习笔记Blog 回复
      4. 学习笔记Blog

        @Holmesian

        请问是不是就见一个缓存表就可以了?

        学习笔记Blog 回复
        1. Holmesian

          @学习笔记Blog

          如果缓存表有问题的话,删掉然后重装一次插件就可以自动生成了。

          Holmesian 回复
          1. 学习笔记Blog

            @Holmesian

            嗯,我重装了一下插件后好了,都搞定了!谢谢了!

            学习笔记Blog
          2. Holmesian

            @学习笔记Blog

            你要先在后台卸载旧版本插件,接着替换新文件,最后再启用新插件。 等我有空加一下保留旧版本插件设置功能。

            Holmesian
          3. 学习笔记Blog

            @Holmesian

            哦,现在是“Path '/clean_cache' not found”这个问题,我照着代码手动建了缓存表,现在问题是不能删除缓存!提示这个错误!

            学习笔记Blog
  52. 泰国菜

    https://holmesian.org/mip/AMP-for-Typecho 代码块区域 不能自适应。。

    泰国菜 回复
    1. Holmesian

      @泰国菜

      已优化。

      Holmesian 回复
  53. 双少

    升级了下插件发现,https://www.qqeg.cn/mip/fast-conversion-of-u-disk-to-nfts-format-without-formatting.html 的mip页面和amp页面 内容不完整啊!!!

    双少 回复
    1. Holmesian

      @双少

      看了一下,HTML里的源码都没丢。
      但是标签闭合出了问题,是否更换了默认的Markdown解析引擎?

      Holmesian 回复
      1. 双少

        @Holmesian

        md原生的

        双少 回复
        1. 双少

          @双少

          解决了,多加了个空行就正常了,另外没评论通知呢

          双少 回复
          1. Holmesian

            @双少

            请升级新版本,已经实现自动闭合标签。

            Holmesian
          2. Holmesian

            @双少

            1.没有用邮件回复的插件

            2.可能因为你用的开发版对Markdown的解析规则不一样导致页面显示不完全:从Markdown转html过程中,没有对每一段内容单独生成p标签,造成mip-img标签不闭合,最终使得一部分内容被归到标签以内而无法显示(在HTML源码中内容没丢,但是被忽略了)。

            我有空的时候再尝试修复这个问题吧。

            Holmesian
          3. 双少

            @双少

            还有https://www.qqeg.cn/mip/disk-error-partition.html 这篇,在mip页面也是不完整, 貌似多图 还有再多加空行, 有点问题

            双少
  54. 凌空漫步

    Parse error: syntax error, unexpected '{' in /www/wwwroot/www.#######.com/usr/plugins/AMP-master/Plugin.php on line 132 这里还是出错

    凌空漫步 回复
    1. Holmesian

      @凌空漫步

      建议升级PHP 5.6+

      新版本插件移除了finally关键字,可以再试试。

      Holmesian 回复
      1. 凌空漫步

        @Holmesian

        我升级了5.6还是不行! 提示 点击启用 提示 Server Error

        凌空漫步 回复
        1. Holmesian

          @凌空漫步

          请提供详细的错误提示。

          disable_function是否同时禁用了curl和fsopen?

          Holmesian 回复
          1. Holmesian

            @凌空漫步

            下载最新版,把

            plugin.php里
            $msg=$msg.self::call_me('install');

            $msg=self::call_me('uninstall');

            这两行注释掉试试。

            Holmesian
          2. 凌空漫步

            @Holmesian

            点击启用 提示 Server Error

            凌空漫步
          3. 凌空漫步

            @Holmesian

            还是 一样 disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru 没有你说的那个两个

            凌空漫步
  55. 凌空漫步

    typecho后台启用时提示server error,何解?

    凌空漫步 回复
    1. Holmesian

      @凌空漫步

      已经修复,请更新。

      Holmesian 回复
  56. Alair

    typecho后台启用时提示server error,何解?

    Alair 回复
    1. Holmesian

      @Alair

      已经修复,请更新。

      Holmesian 回复
  57. 学习笔记Blog

    博主,是否可以考虑给插件添加一个支持MIP 广告的呢?百度MIP现在不是已经有了MIP-AD组件了吗?

    学习笔记Blog 回复
    1. Holmesian

      @学习笔记Blog

      新版本把模板独立出来了,可以根据自己的要求直接在templates目录下的模板文件中微调。

      Holmesian 回复
      1. 学习笔记Blog

        @Holmesian

        哈哈,谢谢博主!赞一个,我今天刚刚用上了0.5.8!大赞!

        学习笔记Blog 回复
  58. 清雨

    今天更新了Github上最新版的AMP插件,发现无论是PC/Mobile浏览器上访问AMP/MIP页面都被重定向到普通页面了,访问AMP首页倒是正常的。

    清雨 回复
    1. Holmesian

      @清雨

      重新更新一下最新版,为了防止搜索引擎重复收录,在后台插件设置页面里面新增加了一个“是否只允许Baidu和Google的爬虫访问MIP/AMP页面”的开关,可以选择打开或者关闭。

      Holmesian 回复
      1. 学习笔记Blog

        @Holmesian

        这个太人性化了!赞一个先!

        学习笔记Blog 回复
      2. 清雨

        @Holmesian

        可以了,感谢抽空加了个开关。看你昨天的代码更新加了个远程判断,应该是判断UA不是百度和谷歌就转跳到正常界面吧。

        清雨 回复
  59. 帅得美滋滋

    博主,自定义文章路径,个性化定义为/Article/20{cid}.html显示 不存在或已删除 怎么办啊

    帅得美滋滋 回复
    1. Holmesian

      @帅得美滋滋

      我重写了自定义文章路径的解析机制,已经可以彻底解决你的问题。
      如果你还在用的话可以更新到v0.7.4.

      Holmesian 回复
    2. Holmesian

      @帅得美滋滋

      已经修复,请卸载旧版再安装新版插件

      Holmesian 回复
      1. 晓波

        @Holmesian

        不行啊,我的还是不存在或已经删除,改了自定义文章的路径还是不行。
        我的自定义文章路径是article/show{cid}.html的。
        我是从github直接克隆过来的。

        晓波 回复
        1. Holmesian

          @晓波

          /mip/{cid}不能访问?

          Holmesian 回复
          1. Holmesian

            @晓波

            基本正常,但是由于strong标签导致自定义的css失效,所以看起来很难看。

            你可以在templates目录下的模板文件中自行微调或美化。

            Holmesian
          2. 晓波

            @Holmesian

            应该是是数据库的权限问题,我没给drop权限。我改掉试试看。
            顺便问下楼主:https://www.osi.xin/mip/26.html 这个页面的mip页面是不是正常的。

            晓波
          3. Holmesian

            @晓波

            重新启用时建立数据表失败的错误代码是什么? 你的数据库用户是否有DROP表权限?

            Holmesian
          4. 晓波

            @Holmesian

            恩,在用的时候发现。这个0.5.7版本,禁用插件会出错databases qu error。但是插件已经不能用了,而且后台管理还是在。
            如果缓存的表Pagecache不删除的话,启用也会提示建立数据表失败。

            晓波
          5. Holmesian

            @晓波

            自定义路径只是针对一般页面,在一般页面的源码里会有<link rel="amphtml" href="https://holmesian.org/amp/AMP-for-Typecho">之类的标签,告诉搜索引擎AMP或MIP页面是什么,所以不用担心。

            Holmesian
          6. 晓波

            @Holmesian

            我明白了,谢谢。
            https://www.osi.xin/amp/show35.html 这个不能访问
            https://www.osi.xin/amp/35.html 这个可以
            但是这样的话我的自定义文章路径不就不行了么。。

            晓波
  60. 双少

    博主可不可以优化下模版样式, 仿下WordPress MIP主题

    双少 回复
    1. Holmesian

      @双少

      新版本将模板独立出来了,你可以自己美化。

      Holmesian 回复
  61. 孙响

    后台插件设置MIP/AMP推送接口调用地址,只有一个输入框,但是接口地址两个,怎么写

    孙响 回复
    1. Holmesian

      @孙响

      AMP和MIP的地址只差一个type参数不同,随便用哪个都可以。提交的时候程序会自动替换的。

      Holmesian 回复
  62. ith8

    老哥 请教个问题,我提交百度MIP的熊掌校验的时候,一直提示我
    @id值和页面地址 不一致

    pubDate格式不对,正确格式示例:'2017-06-06T08:10:21'

    title内容为空
    <script type="application/ld+json">

    { "@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld", "@id": "<?php $this->permalink(); ?>", "title": "<?php $this->title(); ?>", "images": [ "https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png", "https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo_top_ca79a146.png", "https://m.baidu.com/static/index/plus/plus_logo.png" ], "description": "<?php $this->description(); ?>", "pubDate": "<?php $this->date('Y-m-d\TH:i:s'); ?>" }

    </script>

    这是哪里原因 求指导。。。 这一段代码加到了您的插件Action.php文件<!--mip 运行环境--> 里面 求指导哪里错了么。。。看静态文件 输出的
    "pubDate": "",
    "title": "",
    "@id": ""
    都是空的,求老师指导下

    ith8 回复
    1. Holmesian

      @ith8

      你要对相应的参数赋值呀,参考https://github.com/holmesian/Typecho-AMP/blob/master/Action.php文件的第93~104行。

      Holmesian 回复
  63. SunnyLyx

    老哥,貌似通过Google打开的amp首页无法加载任何文章(https://www.google.com/amp/s/example.com/ampindex)
    表现为amp页面文章列表加载动画(转圈或三个点)完毕后,文章列表仍为空白
    包括访问Holmesian Blog的Google ampindex也是如此
    Chrome 63+ & webview 44 均是这种情况(包括PC版Chrome 63改ua访问)
    Chrome Console 有3个无法加载的资源
    望Dalao看一下
    PS:测试不全面,也不排除是代理环境问题

    SunnyLyx 回复
    1. Holmesian

      @SunnyLyx

      感谢反馈,Access-Control-Allow-Origin跨域问题,已经解决,请更新插件。

      Holmesian 回复
  64. 清雨

    再反馈个无伤大雅的小Bug,此插件会把还未发布(定时发布)的文章链接也输出到 Sitemap 里。

    清雨 回复
    1. 清雨

      @清雨

      上面的输出到 Sitemap 的待发布文章链接也都是可以正常访问的,所以比较无所谓。还有一个Bug就是AMP/MIP两种格式的文章链接里指向完整版文章的链接里都带了多余的“#comments”后缀,导致点击后是直接转跳到文章评论区,而不是文章正文处。

      清雨 回复
      1. Holmesian

        @清雨

        已经改好,请更新测试。

        Holmesian 回复
        1. 清雨

          @Holmesian

          嗯,更新完新版本两处的问题确实都解决了。

          清雨 回复
  65. 学习笔记Blog

    博主,你这个AMP/MIP的插件思路非常先进,不知道有没有兴趣移植到 WordPress 呢?当然 WordPress 下可能在样式上复杂一些!

    学习笔记Blog 回复
    1. Holmesian

      @学习笔记Blog

      最近的修改都是在奔波各个工地的路途中做出来的,由于不用WordPress,估计不会花时间去做移植。

      Holmesian 回复
  66. bojone

    你好,启用了插件后,所有的amp文章都显示Delete,不知道是正常的吗?
    比如 kexue.fm/amp/4033

    bojone 回复
    1. Holmesian

      @bojone

      你的文章不是Markdown格式的,我原来的想法是直接不支持非Markdown的内容,因为内联样式会导致直接转换不能得到完全符合规范的页面AMP/MIP页面。

      我尝试不过滤非Markdown的文章,稍后请尝试一下新版本的插件。

      Holmesian 回复
      1. bojone

        @Holmesian

        主要原因是我博客开得早,早期并不是用markdown的,后来转起来也挺麻烦,就不想转了

        bojone 回复
        1. Holmesian

          @bojone

          HTML转Markdown会导致内联样式丢失,而且有很多疑难杂症,需求不大的话确实别折腾了。

          Holmesian 回复
      2. bojone

        @Holmesian

        已经用上新版本,感谢。

        bojone 回复
  67. 姬长信

    https://blog.isoyu.com/archives/20740.html
    https://blog.isoyu.com/amp/20740.html
    会显示Delete
    请问一下这是什么情况

    姬长信 回复
    1. Holmesian

      @姬长信

      简单看了一下,这个文章的别名是不是设置成了数字20740?

      如果是的话,那么这就是我当时偷懒没做匹配的情况了……等我有空完善下吧。

      Holmesian 回复
      1. 姬长信

        @Holmesian

        原因可能是我不是用Markdown语法

        姬长信 回复
        1. Holmesian

          @姬长信

          哦~ 那就对了,本来我一开始就想问的,Readme里面写了我就以为是markdown语法的文章。

          非Markdown的情况太麻烦,目前只支持Markdown语法。

          Holmesian 回复
          1. 姬长信

            @Holmesian

            哈哈,没事。辛苦了

            姬长信
      2. 姬长信

        @Holmesian

        测试仍存在该问题

        姬长信 回复
        1. Holmesian

          @姬长信

          已经更新,请测试。

          Holmesian 回复
        2. Holmesian

          @姬长信

          这个文章的别名是不是数字20740?

          你的自定义文章路径是什么?

          Holmesian 回复
      3. 姬长信

        @Holmesian

        好的,非常感谢

        姬长信 回复
  68. 学习笔记Blog

    博主呀,很久没有更新文章了,催更一下!

    学习笔记Blog 回复
    1. Holmesian

      @学习笔记Blog

      年底比较忙,今天趁着车上的时间把AMP首页做完了。

      Holmesian 回复
      1. 学习笔记Blog

        @Holmesian

        嗯,我刚去GitHub上下载升级了!还加入了熊掌号的支持!赞一个先!

        学习笔记Blog 回复
        1. Holmesian

          @学习笔记Blog

          所有问题已经排除,可以用新版本插件了。

          Holmesian 回复
        2. Holmesian

          @学习笔记Blog

          先别更新,还有小问题没有解决。

          Holmesian 回复
          1. 学习笔记Blog

            @Holmesian

            哦,我用着感觉都很正常呀!

            学习笔记Blog
  69. 清雨

    再谢谢你特地抽空适配了带“.html”这类后缀的伪静态,然后再反馈个问:
    两个sitemap里面的链接确实都带后缀了,并且使用带后缀的地址访问也正常了
    但是在控制台→AMP/MIP自动提交,两个类型的页面执行“提交到百度”,提交的列表还是不带“.html”这类伪静态后缀的
    希望抽空再完善下

    清雨 回复
    1. 清雨

      @清雨

      嗯,还有,你的博客没有赞赏码可以扫么?

      清雨 回复
      1. Holmesian

        @清雨

        自动提交的路径已经完善好。
        没考虑到会有人愿意赞赏,我做的东西能帮到其他人我就很开心了。O(∩_∩)O

        Holmesian 回复
        1. 清雨

          @Holmesian

          嗯,已用上新版插件,3Q~

          清雨 回复
  70. chinakafei

    https://www.ruanjian99.com/amp/qianfangbaiji

    图片拉伸,求博主帮忙!!!

    chinakafei 回复
    1. Holmesian

      @chinakafei

      1、你的图片地址没使用协议,针对这个情况我更新了一下读取尺寸的函数,请更新一下插件; 2、目前插件是按照AMP标准解决图片适应性问题,你的情况是多个amp-img标签落在了同一个p标签里导致的。请编辑文章,在图片与图片之间增加一个空行,受AMP标准限制,不方便在程序里直接帮你加p标签。

      Holmesian 回复
      1. chinakafei

        @Holmesian

        好的,谢谢博主的帮助,我刚刚看到你更新了插件,增加了Helper::addRoute('amp_index', '/ampindex/', 'AMP_Action', 'AMPindex');

        是不是代表首页也支持了?

        chinakafei 回复
        1. Holmesian

          @chinakafei

          还没做完,有空再弄,最近事情比较多。

          Holmesian 回复
          1. chinakafei

            @Holmesian

            感谢,问题解决!!!!非常好的插件!!

            chinakafei
  71. 学习笔记Blog

    网站首页AMP访问的格式应该是啥?

    学习笔记Blog 回复
    1. Holmesian

      @学习笔记Blog

      没有做针对首页的AMP页面,有空我增加一下。

      Holmesian 回复
      1. 学习笔记Blog

        @Holmesian

        谢谢,期待中……!

        学习笔记Blog 回复
  72. Damon胡东东

    博主能否兼容下其他伪静态规则呢,你的伪静态应该是{slug},如果使用了{category}/{cid}.html这种的话怎么搞呢?发现只能amp/600这样访问,如果是amp/test/600.html则不行

    Damon胡东东 回复
    1. Holmesian

      @Damon胡东东

      我更新了一下插件,支持别名{slug}和序号{cid}两种方式的AMP/MIP页面访问。
      所以现在无论使用怎样的Rewrite规则,也不管是否设置文章别名,都可以在标准页面生成可以访问的rel="amphtml"和rel="miphtml"地址。

      由于typecho插件只能在挂载插件时设置路由的限制,自定义amp/mip页面路径的要求可能无法实现。

      Holmesian 回复
      1. 清雨

        @Holmesian

        和这个层主一样的情况,他的意思是网站是带“.html”后缀的伪静态,希望转成AMP/MiP后能继续带“.html”后缀访问。不知能否实现?
        我这边访问amp/{slug}.html和mip/{slug}.html,页面都只提示“Delete”,而访问amp/{slug}和mip/{slug}都是正常的。
        看了一下amp_sitemap和mip_sitemap里面的链接都是不带“.html”后缀的。

        最后谢谢你的插件,确实很方便,期待以后越来越完善。

        清雨 回复
        1. Holmesian

          @清雨

          已经按你的需求完善。现在标准页中关联的amp/mip地址将根据后台设置的自定义文章路风格的最后一项来生成,sitemap中的地址也会更新。

          Holmesian 回复
          1. 清雨

            @Holmesian

            还麻烦你特地更新插件,感谢~

            清雨
      2. Damon胡东东

        @Holmesian

        辛苦啦,对这方面不了解,只会拿来用,O(∩_∩)O哈哈~

        Damon胡东东 回复
  73. Damon胡东东

    不错,博主很给力啊,已经用上了

    Damon胡东东 回复
  74. 个人博客

    感谢分享

    个人博客 回复
  75. null-ecp

    博主在吗 这个是那个AMP的接口地址吗

    null-ecp 回复
    1. Holmesian

      @null-ecp

      是的,就是这个

      Holmesian 回复
      1. null-ecp

        @Holmesian

        谢谢啦

        null-ecp 回复
  76. jason

    不错~ 终于用上AMP了

    jason 回复
  77. Flyer

    感谢分享 已使用

    Flyer 回复
    1. Holmesian

      @Flyer

      能用上就好~ ^_^

      Holmesian 回复
  78. ryoy

    兄弟… 这个博客的主题是什么?

    ryoy 回复
    1. Holmesian

      @ryoy

      https://github.com/siseboy/junichi

      Holmesian 回复
  79. Kay

    谷歌已经收录这一篇了,但是AMP测试不是有效的 AMP 网页呢。AMP 标记缺失或不正确。例如本文的AMP页面:https://search.google.com/test/amp?id=w9hnBj-HMvmhGHSQvjtopg 通过测试的页面:https://search.google.com/test/amp?id=y4F4ZyEJABP98vnPYrSLVg

    Kay 回复
    1. Holmesian

      @Kay

      自动格式化的锅,已经修复了。

      原因是amp-custom amp-boilerplate amp-boilerplate都必须是单行。

      Holmesian 回复
  80. 天使漫步

    您好,typechodev网站已经收录该插件,谢谢您的贡献。

    天使漫步 回复
    1. Holmesian

      @天使漫步

      ^ _ ^

      Holmesian 回复
      1. 天使漫步

        @Holmesian

        见收录网址:https://www.typechodev.com/case/amp-for-typecho.html

        天使漫步 回复
        1. Holmesian

          @天使漫步

          我昨天更新了插件,添加了后台提交的功能。

          Holmesian 回复
  81. asher

    1.1 版的,显示 这个错误:AMP_Action ,不能进入正常的APM页面。请问什么原因呢?

    asher 回复
    1. Holmesian

      @asher

      是启用插件时提示错误还是打开AMP页面时提示?

      你设置-》永久链接-》自定义文章路径用的是什么格式?

      最好给个地址我看一下。

      Holmesian 回复
      1. asher

        @Holmesian

        已经没问题了,AMP的链接要按你提供的方式就好了。谢谢博主。

        asher 回复
  82. 尚寂新

    请教一下页面后面带参数那个方式对seo比较好还是/amp/这种有优势?如果不用插件的话怎么实现/amp/这种格式

    尚寂新 回复
    1. Holmesian

      @尚寂新

      对于Google来说,正常页面和AMP页面已经建立了联系,所以URL采用何种形式差别不大,保持统一即可。

      对于其他搜索引擎来说,各家标准不一样,URL路径用什么格式会有绝对的优势不好说,但是就个人经验而言:个人博客采用URL路径层次比动态参数要好。

      另外对于不支持AMP的搜索引擎来说,正常页面和AMP页面是两个不同的页面,内容雷同,要原网页获得更多权重的话似乎更应当屏蔽不支持AMP的搜索引擎访问AMP页面。

      Holmesian 回复
      1. 尚寂新

        @Holmesian

        那百度收录参数链接效果咋样{但我知道谷歌处理参数链接处理的不错}

        尚寂新 回复