QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

微信扫一扫 分享朋友圈

已有 10382 人浏览分享

开启左侧

在Discuz模板代码中加入og协议,将页面改造成富媒体对象

[复制链接]
10382 0
  这几天天气冷得很,继续在家优化网站。分析网易的页面源码,发现其使用了OG协议,如property="og:type"这样。根据查询得知,og标签是一种新的http头部标记,即Open Graph Protocol(开放内容协议)。在页面添加这种协议可以让网页成为一个“富媒体对象”,表示同意网页内容可以被其他社会化网站引用等。
image.png
门户页效果
image.png
帖子页效果
  见贤思齐,于是准备也把自己的网站改造一下,引入OG协议。修改页面需要在模板上做文章,在实际操作中,发现discuz的模板代码变量和diy的代码变量不能通用。比如:diy里面显示当前页面标题用的是{title},不管是文章还是帖子,都用的这个。但在模板中,分为门户页和帖子页2种,门户页的标题为:$article['title'],帖子页的标题为:$thread['subject']。
  改造首先要确定只有在内容页需要标记OG,首页和列表页完全没必要。并且需要根据门户和论坛的不同,页面输出不同的变量。标记的内容有页面标题、页面地址、页面图片、发表时间、作者等。分别对应以下变量:
  文章标题:$article['title']
  文章时间:$article['dateline']
  帖子标题:$thread['subject']
  帖子时间:$post['dateline']
  文章图片:$article['pic']
  页面地址没有现成的,需要自己通过文章aid、帖子tid进行拼接,拼接的结果如下:
  文章页:$_G['siteurl'].'article-'.$article[aid].'-1.html'
  帖子页:$_G['siteurl'].'thread-'.$thread[tid].'-1-1.html'
  这里面最关键的是帖子图片的获取,系统没有现成的变量可供调用,通过打印$post变量可以得知图片信息存放在$post['attachments']里面。又由于attachments并不是每个帖子重新编号,而是根据历史顺序编号的,所以要进行多轮处理加工,最终结果如下:
  帖子图片:$post['attachments'][array_keys($post['attachments'])[0]]['attachment'],取帖子内第1张图片是最稳妥的办法。
最后把修改好的内容发上来,供有需要的朋友参考。
  1.         <!--{if $article['dateline'] != '' || $post['dateline'] != ''}-->
  2.         <meta property="og:type" content="article"/>
  3.         <meta property="og:title" content="<!--{if $_G['basescript'] == 'portal'}-->$article['title']<!--{else}-->$thread['subject']<!--{/if}-->"/>
  4.         <meta property="og:description" content="{echo dhtmlspecialchars($metadescription)}"/>
  5.         <meta property="og:url" content="{if $_G['basescript'] == 'portal'}{echo $_G['siteurl'].'article-'.$article[aid].'-1.html'}{else}{echo $_G['siteurl'].'thread-'.$thread[tid].'-1-1.html'}{/if}"/>
  6.         <meta property="og:image" content="{if $_G['basescript'] == 'portal'}{if $article['pic'] !=''}{echo $_G['siteurl'].$article['pic']}{else}{echo $_G['siteurl'].'images/logo.png'}{/if}{else}{if $post['attachments'][array_keys($post['attachments'])[0]]['attachment'] != ''}{echo $_G['siteurl'].$post['attachments'][array_keys($post['attachments'])[0]]['url'].$post['attachments'][array_keys($post['attachments'])[0]]['attachment']}{else}{echo $_G['siteurl'].'images/logo.png'}{/if}{/if}"/>
  7.         <meta property="og:site_name" content="玩慈利网"/>
  8.         <meta property="article:author" content="玩慈利网"/>
  9.         <meta property="og:release_date" content="<!--{if $_G['basescript'] == 'portal'}-->{echo date('Y-m-d H:i:s',$article['timestamp'])}<!--{else}-->{echo date('Y-m-d H:i:s',$post['dbdateline'])}<!--{/if}-->"/>
  10.         <meta property="article:published_time" content="<!--{if $_G['basescript'] == 'portal'}-->{echo date('Y-m-d H:i:s',$article['timestamp'])}<!--{else}-->{echo date('Y-m-d H:i:s',$post['dbdateline'])}<!--{/if}-->"/>
  11.         <meta property="bytedance:published_time" content="<!--{if $_G['basescript'] == 'portal'}-->{echo date('Y-m-d H:i:s',$article['timestamp'])}<!--{else}-->{echo date('Y-m-d H:i:s',$post['dbdateline'])}<!--{/if}-->"/>
  12.         <!--{/if}-->
复制代码
  希望这个改造能有利于网站收录及排名吧。以前一直觉得模板中尽量少用变量,可以提高页面打开速度,实际上程序运行很快,基本上可以忽略不计。所以能用变量,尽量用变量。

上一篇:江苏省无锡市移动IP(112.25.79.67)爬虫真的很过分,收手吧!
下一篇:DiscuzX3.5邮件发送返回错误信息,各个方法试完终于解决了!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

36

关注

177

粉丝

13505

主题
热门资讯
网友晒图
  • 公众号

    微信公众号

  • 微信

    站长微信

Powered by Discuz! 在此致以诚挚谢意!

CopyRight © 2011-2024 wancili.com