这几天天气冷得很,继续在家优化网站。分析网易的页面源码,发现其使用了OG协议,如property="og:type"这样。根据查询得知,og标签是一种新的http头部标记,即Open Graph Protocol(开放内容协议)。在页面添加这种协议可以让网页成为一个“富媒体对象”,表示同意网页内容可以被其他社会化网站引用等。 门户页效果 帖子页效果 见贤思齐,于是准备也把自己的网站改造一下,引入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张图片是最稳妥的办法。
最后把修改好的内容发上来,供有需要的朋友参考。
- <!--{if $article['dateline'] != '' || $post['dateline'] != ''}-->
- <meta property="og:type" content="article"/>
- <meta property="og:title" content="<!--{if $_G['basescript'] == 'portal'}-->$article['title']<!--{else}-->$thread['subject']<!--{/if}-->"/>
- <meta property="og:description" content="{echo dhtmlspecialchars($metadescription)}"/>
- <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}"/>
- <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}"/>
- <meta property="og:site_name" content="玩慈利网"/>
- <meta property="article:author" content="玩慈利网"/>
- <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}-->"/>
- <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}-->"/>
- <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}-->"/>
- <!--{/if}-->
复制代码 希望这个改造能有利于网站收录及排名吧。以前一直觉得模板中尽量少用变量,可以提高页面打开速度,实际上程序运行很快,基本上可以忽略不计。所以能用变量,尽量用变量。 |
上一篇:江苏省无锡市移动IP(112.25.79.67)爬虫真的很过分,收手吧!下一篇:DiscuzX3.5邮件发送返回错误信息,各个方法试完终于解决了!
|