TypechoJoeTheme

黑夜与白昼

统计
登录
用户名
密码
/
注册
用户名
邮箱

1486308032

类目归类
文章目录

Typecho添加AMP支持

2020-12-03
/
0 评论
/
1,666 阅读
/
正在检测是否收录...
12/03

文章内容转自https://holmesian.org/typecho-upgrade-AMP,略有修改

Typecho至今没有出任何支持AMP的插件或主题,我没去想怎么用插件实现AMP,而是直接通过修改模板的post.php、function.php文件来暴力实现,原则上所有模板都可以用。

效果就是在任何一篇博文的url后面加上amp=1即可访问amp版的页面,例如本文的AMP页面,总之实现起来也很简单。
具体步骤如下:
对模板里的post.php文件做如下修改(后台控制台》外观》编辑当前外观》post.php):


    
    
      
        
        
        <?php $this->title() ?>
        
        


        
         

        
      
      
      

title(); ?>


content(); ?>

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »

\\这里是原模板内容

接着在functions.php文件末尾添加下列两个函数。

    function ampInit($archive)
    {
        if ($archive->is('single')) {
            $archive->content = str_replace('content);
            $archive->content = str_replace('img>','amp-img>',$archive->content);
            $archive->content = str_replace('','',$archive->content);
            $archive->content = str_replace('javascript:content_index_toggleToc()','#',$archive->content);
        }
    
    }
    
    
    function get_post_img($archive)
    {
        $cid = $archive->cid;
        $db = Typecho_Db::get();
        $rs = $db->fetchRow($db->select('table.contents.text')
                                   ->from('table.contents')
                                   ->where('cid=?', $cid));
        $text = $rs['text'];
        $pattern = '/\]*>/i';
        $patternMD = '/\!\[.*?\]\((http(s)?:\/\/.*?(jpg|png))/i';
        $patternMDfoot = '/\[.*?\]:\s*(http(s)?:\/\/.*?(jpg|png))/i';
            if (preg_match($patternMDfoot, $text, $img)) {
                $img_url = $img[1];
            } else if (preg_match($patternMD, $text, $img)) {
                $img_url = $img[1];
            } else if (preg_match($pattern, $text, $img)) {
                preg_match("/(?:\()(.*)(?:\))/i", $img[0], $result);
                $img_url = $img[1];
            } else {
                $img_url ='https://holmesian.org/usr/themes/Holmesian/images/holmesian.png?type=markdown';
            }
            return $img_url;
    }

最后在header.php中添加下列内容

    is('post')): ?>
    
    

全部修改之后,刷新缓存,就可以访问AMP页面啦。
PS:可以到这里测试你的AMP页面是否正确有效。
PS2:Google大概会在48小时内抓取到AMP页面,并在搜索结果中体现出来。效果如下:

朗读
赞 · 0
赞赏
感谢您的支持,我会继续努力哒!

三合一收款

下面三种方式都支持哦

微信
QQ
支付宝
打开支付宝/微信/QQ扫一扫,即可进行扫码打赏哦
版权属于:

黑夜与白昼

本文链接:

https://blog.wxsq.top/default/typecho-adds-amp-support.html(转载时请注明本文出处及文章链接)

评论 (0)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

暂无回复

标签云