YTsudaのブログ

1985生まれ、男。東京で働くWeb制作者

Facebook Likeボタンのdescriptionを編集する with CakePHP

facebookボタンを押した時にピョンと出てくるポップアップの descriptionを編集したい。 そんな時は、以下のようなmetaタグをhead内に書くことで編集できる。

<head>
    ...
    <meta property="og:description" content="A description to be used in the share dialog." />
</head>

CakePHPでmetaタグを埋め込む方法

さて、この仕組みをcakeで利用する場合、 それぞれのview内でHtmlヘルパーを使ってcssやjsをhead内に埋め込むようなやり方で metaタグを埋め込みたいという欲求に駆られる。

$this->Html->css('hoge', null, array('inline' => false));

こんな感じのやつ。

Htmlヘルパーのmetaメソッドの使い方

そこで、Htmlヘルパーにmetaメソッドがあるんじゃないかと思って調べたら、ずばりそのものがあった。 descriptionのmetaタグを出力したい時には以下のような形で良いらしい。

echo $this->Html->meta(
    'description',
    'A description to be used in the share dialog.'
);

ただ、"og:description"のような独自のmetaタグを入れたい時、このメソッドには配列でデータを渡す必要があるので、最終的には以下のようなコードになった。

echo $this->Html->meta(
    array(
        'property' => 'og:description',
        'content' => 'A description to be used in the share dialog.'
    ),
    null,
    array('inline' => false)
);

参考

HtmlHelper - CakePHP Cookbook v2.x documentation