首先

下面是使用新的方法,内容比较长,请仔细阅读,代码中的链接仅适合我的博客,请根据自己的博客链接进行替换

<!-- QQCard BEGIN -->
<meta itemprop="name" content="标题">
<meta itemprop="image" content="图片">
<meta name="description" itemprop="description" content="描述">
<!-- QQCard END -->

meta标签直接插入header.phphead标记内即可,对于标题的获取可根据模板的不同自行摸索,而对于图片和描述,我们分情况讨论:

第一种情况,当前页面为首页,即$this->is('index')==true,图片我选择了网站logo(但是因为懒就没有动态获取),描述则直接输出博客描述,即:

<?php if($this->is('index')): ?>
<meta itemprop="image" content="https://handsl.cn/usr/uploads/2019/11/1285989641.jpg">
<meta name="description" itemprop="description" content="<?php $this->options->description(); ?>">

如果你也需要相同的部署,请替换https://handsl.cn/usr/uploads/2019/11/1285989641.jpg为你希望的首页展现图片地址。

第二种情况,当前页面是文章页,即$this->is('post')==true,我认为此时应该输出该文章的头图和对应的文章摘要,这部分参考主题写法和libs/Content.php中的内容很快可以得到。这里我使用Content::returnHeaderImgSrc($this,'post',0,true);来获取头图的URL;使用Content::excerpt(trim($this->fields->customSummary)!=''?$this->fields->customSummary:$this->excerpt,200);来获取摘要,我截取了200字,但事实上QQ也会进行一次截取,长度大概更短,所以截取的字数基本上是无关紧要的。这部分的代码如下:

<?php elseif($this->is('post')): ?>
<meta itemprop="image" content="<?php echo Content::returnHeaderImgSrc($this,'post',0,true); ?>">
<meta name="description" itemprop="description" content="<?php echo Content::excerpt(trim($this->fields->customSummary)!=''?$this->fields->customSummary:$this->excerpt,200); ?>">

我没有扩展更多的情况,对于我来说,这两种情况够用了,我设置的其他情况规则与首页规则相同,但是为了方便以后的扩展我还是将两者分开书写。如果你有更多需求,可以自行扩展,扩展时对页面类型的判断方法可以参考神奇的is语法。

<?php else: ?>
<meta itemprop="image" content="https://handsl.cn/usr/uploads/2019/11/1285989641.jpg">
<meta name="description" itemprop="description" content="<?php $this->options->description(); ?>">
<?php endif; ?>

最终代码

将下面代码插入header.php中,以下代码仅适合handsome,其他模板自行摸索或直接用本文最上面的代码

<!-- QQCard BEGIN -->
<meta itemprop="name" content="<?php Content::echoTitle($this,$this->options->title,$this->_currentPage); ?>">
<?php if($this->is('index')): ?>
<meta itemprop="image" content="https://handsl.cn/usr/uploads/2019/11/1285989641.jpg">
<meta name="description" itemprop="description" content="<?php $this->options->description(); ?>">
<?php elseif($this->is('post')): ?>
<meta itemprop="image" content="<?php echo Content::returnHeaderImgSrc($this,'post',0,true); ?>">
<meta name="description" itemprop="description" content="<?php echo Content::excerpt(trim($this->fields->customSummary)!=''?$this->fields->customSummary:$this->excerpt,200); ?>">
<?php else: ?>
<meta itemprop="image" content="https://handsl.cn/usr/uploads/2019/11/1285989641.jpg">
<meta name="description" itemprop="description" content="<?php $this->options->description(); ?>">
<?php endif; ?>
<!-- QQCard END -->

请替换https://handsl.cn/usr/uploads/2019/11/1285989641.jpg为你希望的首页展现图片地址。

刷新缓存

完成插入后,我们还需要验证配置是否有效并刷新QQ的缓存,这一步通常是通过访问https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=欲检测的网址来完成,例如:https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=https://handsl.cn,如果返回的jsonp数据中包括你设置的内容,表示设置有效且缓存已经刷新完毕。视情况可能需要多次刷新。
20200501-154532(0).jpg

最后修改:2020 年 05 月 01 日 03 : 48 PM
如果觉得我的文章对你有用,请随意赞赏