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

更新

[[公開メモ]]

* twitter や Facebook に張られたリンクをキレイに表示する [#s5dc47bd]

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: 3366 (from 2010/06/03), today: 1, yesterday: 3