baserCMSのヘルパーでTwitter Cardsのタグを出力
こんにちは、ナカエです。
先ほど記事執筆中に操作ミスで記事が消えたショックを隠しきれません。
俺、仕事が一段落したら下書きを自動保存するbaserCMSのプラグイン作るんだ……
さて、本日はTwitterのタイムラインに投稿されたURLのコンテンツ表示をコントロールできるTwitter Cardsについての話題です。
FacebookのOGPと同じく、適切に設定すればSNSでシェアされたページを目立たせることができます。
このTwitter Cards 表示用のbaserCMSヘルパーを自作します。
Twitter CardsにはPhoto Cardや Product Cardなど色々と種類がありますが、ページの概要を表示させるSummary Cardを例に取ります。

※画像は表示確認用の公式バリデーター
テーマファイルの直下の helpers ディレクトリにphpファイルを新規作成します。
/path/to/theme/dir/helpers/bc_twittercards.php
先ほど記事執筆中に操作ミスで記事が消えたショックを隠しきれません。
俺、仕事が一段落したら下書きを自動保存するbaserCMSのプラグイン作るんだ……
さて、本日はTwitterのタイムラインに投稿されたURLのコンテンツ表示をコントロールできるTwitter Cardsについての話題です。
FacebookのOGPと同じく、適切に設定すればSNSでシェアされたページを目立たせることができます。
このTwitter Cards 表示用のbaserCMSヘルパーを自作します。
Twitter CardsにはPhoto Cardや Product Cardなど色々と種類がありますが、ページの概要を表示させるSummary Cardを例に取ります。

※画像は表示確認用の公式バリデーター
参考
Summary Card | Twitter Developpers
コード
テーマファイルの直下の helpers ディレクトリにphpファイルを新規作成します。/path/to/theme/dir/helpers/bc_twittercards.php
<?php
/**
* Twitter Cards(summary) metaタグヘルパー クラス
*
* PHP versions 5
*
* @copyright Nextat Inc.
* @link http://nextat.co.jp
* @version 0.9.0
* @modifiedby 2013/07/27
* @lastmodified 2013/07/27
* @license MIT
*/
class BcTwittercardsHelper extends BcBaserHelper {
/**
* カードプロパティ
*
* @var array
* @access public
*/
var $cardsProperties = array();
/**
* Twitter Cards のmetaタグを取得する
*
* @return string
* @param array $properties
* @access public
*/
function getTags($properties = array()) {
$cardsProperties = array(
'card' => 'summary',
'site' => '@nextat_inc',
'creator' => '@nextat_inc',
'title' => $this->getTitle(),
'description' => $this->getDescription(),
'image' => $this->getUrl('/', true) . 'img/sns_image.png'
);
$cardsProperties = Set::merge($cardsProperties, $properties);
$html = '';
foreach ($cardsProperties as $key => $value) {
$html .= '<meta name="twitter:' . $key . '" content="' . $value .'">' . PHP_EOL;
}
return $html;
}
/**
* Twitter Cards のmetaタグを出力する
*
* @return void
* @param array $properties
* @access public
*/
function tags($properties) {
echo $this->getTags($properties);
}
}
?>
使い方
$bcTwittercards->tags(array('title' => 'タイトル'));
引数の連想配列でデフォルト値を上書きできます。