pukiwiki/Open Graph Protocol (OGP) のバックアップ(No.1)

更新


公開メモ

twitter や Facebook に張られたリンクをキレイに表示する

https://www.agilegroup.co.jp/technote/magnolia-ogp.html

http://oxynotes.com/?p=3177

とを参考に、

LANG:php
 <!-- ここからOGPコード-->
 <meta property="og:title" content="<?php echo $title ?>">
 <meta property="og:type" content="article">
 <meta property="og:url" content="<?php echo 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>">
 <meta property="og:description" content="<?php
   $str = $body;
   $pos = strpos($str, '<div class="contents">'); // 目次を取り除く
   if($pos) {
     $str = substr($str, strpos($str, '</div>', $pos)+5);
   }
   $str = preg_replace('/.*?<\/h[1-5]>/', '', $str); // 見出しを取り除く
   echo $str = str_replace(array("\r\n","\r","\n"," "," "), '', mb_strcut(strip_htmltag($str,$all = TRUE),0,400,"UTF-8"));
 ?>">
 <meta property="og:site_name" content="<?php echo $page_title ?>">
 <?php
   $str = $body; // data-ogp が付いた画像を優先する
   $result = preg_match_all('/<img.*?src=(["\'])(.+?)\1.*?data-ogp.*?>/i', $str, $imgurl);
   if(!$result) {
     $result = preg_match_all('/<img.*?src=(["\'])(.+?)\1.*?>/i', $str, $imgurl);
   }
   if($result) {
     echo '<meta property="og:image" content="' . htmlspecialchars_decode($imgurl[2][0]) . '">';
   }
 ?>
 <!-- ここまでOGPコード-->

Counter: 3397 (from 2010/06/03), today: 5, yesterday: 0