Facebook用にOGP対応してくれるヘルパー
開発環境:CakePHP2.5.1
GitよりOGPプラグインをダウンロード
まずはGitに公開されているCakePHP OGP Pluginをダウンロードします。
https://github.com/monsat/Ogp
リネームして設置
ダウロードしたファイルを解凍し、Ogp とリネームして app/Plugin/Ogp に設置します。
bootstrap.phpに読み込む設定を追記
設置したOgpを読み込むために、app/Config/bootstrap.php に下記のコードを追加します。
CakePlugin::load('Ogp');
AppControllerでヘルパーをインクルード
Ogpの読み込みが完了したので、実際に利用するために app/Controller/AppController.php でヘルパーを指定します。
class AppController extends Controller {
public $helpers = array('Ogp.Ogp');
}
出力する場所への設定
app/View/Layouts/default.ctp内でOGPタグを出力したい場所に下記のコードを追加します。
<?php echo $this->fetch('meta'); ?>
デフォルト設定をする
app/Config/bootstrap.phpに下記のようなデフォルト設定を追加します。
<?php
Configure::write('Site', array(
'site_name' => 'My Site',
'description' => 'My Site is awesome',
'image' => '/img/image.png',
'type' => 'website',
'separator' => ' - ',
));
Configure::write('Ogp.settings', array(
'base' => 'Site.',
'autoKeys' => array('site_name', 'description', 'type', 'image'), // set by beforeLayout
));
?>
このように書くとog:site_name、og:description、og:type、og:imageが出力されます。
各ビューで個別設定をする
各ページごとに設定したい内容は各ビューへ下記のように記述します。
<?php
$this->Ogp->title('記事タイトル');
$this->Ogp->set('description', '記事ディスクリプション');
$this->Ogp->set('type', 'article');
?>
