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'); ?>