专栏首页小文博客WordPress实现QQ卡片链接
原创

WordPress实现QQ卡片链接

效果预览

原理分析

QQ发出去一个网址后,在展示的时候,他会快速抓取网站的内容(标题,缩略图,描述)进行展示,抓取有特殊标记的内容,快速展示出来。我们可以通过在head部分加标签的方式让这个过程更快,更准确的展示我们需要的内容。

mate标签

<!--必填-->
<meta itemprop="name" content="网站标题"/>
<meta itemprop="image" content="网站要显示的图片链接" />
<meta name="description" itemprop="description" content="网站内容" />

将以上标签加至文章head即可。

实现思路

文章页

name = 文章标题

image = 特色图(未设置特色图自动抓取文章第一张图片)

meta = 文章描述

分类页

name = 分类名称

image = 自定义

meta = 分类描述

主页

name = 站点名称

image = 站点logo

meta = 站点描述

具体代码

由于主题不一样,我这里只给出我主题的部分代码,至于缩略图获取,文章描述获取等这类函数就不一一贴出。

<meta name="description" itemprop="description" content="<?php description(); ?>"><meta itemprop="image" content="<?php echo ravenclaw_share_post_image(); ?>" />

加入header.php

function ravenclaw_share_post_image(){
    global $post;
    if (has_post_thumbnail($post->ID)) /*有特色图就直接返回特色图*/
{
        $post_thumbnail_id = get_post_thumbnail_id( $post );
        $img = wp_get_attachment_image_src( $post_thumbnail_id, 'full' );
        $img = $img[0];
}
    else/*否则抓取第一张图片*/
{
        $content = $post->post_content;
        preg_match_all('/<img.*?(?: |\\t|\\r|\\n)?src=[\'"]?(.+?)[\'"]?(?:(?: |\\t|\\r|\\n)+.*?)?>/sim', $content, $strResult, PREG_PATTERN_ORDER);
        if (!empty($strResult[1])) {
            $img = $strResult[1][0];
        }else{
            $img = ravenclaw_option('tool_single_image');
        }
};
    if (is_home())/*首页图片返回站点logo*/
{
        $img = ravenclaw_option('tool_share_image');
}
    return $img;
}

思路说了,完整代码可以根据自己主题函数进行完善

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • WordPress获取所有文章链接

    神无月
  • WordPress获取所有文章链接

    神无月
  • 支付宝每日领红包,最高99元

    支付宝领红包活动又来了,这次活动力度更大,每天可以领两个红包。动动手指,一天免费喝一瓶红牛不是梦!

    神无月
  • Swift3.0 - 断言

    酷走天涯
  • Clipboard还能玩出花

    用户1907613
  • R语言与生信系列①(R入门与临床三线表绘制)

    首次分享课讲的是TCGA数据分析,探究某一因素与肿瘤临床数据之间的关系,并自动生成可以用于SCI发表的三线表,如下图所示:

    用户1359560
  • Groovy语法系列教程之布尔(五)

    本系列教程介绍Groovy编程语言的语法。Groovy的语法源自Java语法,但是通过特定类型对其进行了增强,并允许进行某些简化。

    DevOps持续交付
  • 聊聊G1 GC的String Deduplication

    codecraft
  • Linq2Sql数据实体外部更新时“不能添加其键已在使用中的实体”的解决办法

    Linq to Sql中,如果我们想在DataContext外部修改一个实体的值,然后把引用传入到DataContext中,再利用Attach附加后更新,代码如...

    菩提树下的杨过
  • 如何转换png图片为jpg图片

    最近在工作中会遇到需要将 png 图片转换为 jpg 图片的需求,主要原因也是 png 图片占的空间太大,如果图片数量上万张,可能就需要十几G的存储空间,所以希...

    材ccc

扫码关注云+社区

领取腾讯云代金券