Home » Program » WordPress HTML5, CSS3 Valid (No. 3) (Tag: , , )

Facebook 向けに OGP (Open Graph Protocol) に対応する方が望ましいとした場合、やはり Valid にはなりません。

HTML5 + RDFa ? 等も考えられますが、発想を変えて Facebook との通信のみ meta property="og:XXX" を出力すれば良いのでは ? と考えました。

function wg_ogp() {
    $agent = $_SERVER['HTTP_USER_AGENT'];

    if (preg_match('/facebook/', $agent)) {
?>
<meta property="og:site_name" content="<?php bloginfo('name'); ?>" />
<meta property="og:title" content="<?php wg_title(); ?>" />
<meta property="og:description" content="<?php wg_desc() ?>" />
<meta property="og:type" content="article" />
<meta property="og:url" content="<?php echo wg_here(); ?>" />
<meta property="og:image" content="<?php wg_img() ?>" />
<meta property="fb:admins" content="100001699619269" />
<meta property="fb:app_id" content="365262713525479" />
<?php
    }
}

Validate ツール向けのみ出力 *しない* というルーチンでも良いですが、現状 Facebook 以外には無用なタグなので、上記の様に function.php に追記して header.php から呼んでいます。

# memo: http://developers.facebook.com/tools/debug

wg_ogp() 内にも wg_ で始まる関数がありますが、これは望む表示をするためにひと工夫した関数です。テンプレートにも依存しますが、一例を。

function wg_desc() {
    if (is_single()) {
        if (have_posts()) : while (have_posts()) : the_post();
            echo wg_the_content(100, 'r');
        endwhile; endif;
    } else {
        echo bloginfo('description');
    }
}

function wg_img() {
    if (is_single() && has_post_thumbnail()) {
        $img_id = get_post_thumbnail_id();
        $img    = wp_get_attachment_image_src( $img_id, 'evandr_slide');
        echo $img[0];
    } else {
        echo 'http://wg.drive.ne.jp/rose/wp-content/uploads/2012/04/2011080901-350x200.jpg';
    }
}

function wg_the_content($num, $mode = null) {   // tab.php sidebar.php
    $content = get_the_content($more_link_text, $stripteaser);
    $content = apply_filters('the_content', $content);
    $content = str_replace(']]>', ']]&gt;', $content);

    $content = preg_replace('/<div .*>.*<\/div>/', '', $content);
    $content = str_replace("\n", '', $content);
    $content = strip_tags($content);
    $content = mb_substr($content, 0, $num);

    if ($mode && $mode == 'r') {
        return $content;
    } else {
        echo "$content";
    }
}

PHP のプログラマみたいですが、実は I Love Perl です。WordPress が PHP で作られているので、いたしかたありませんね。

Random Select

41B0208 (1)
Drive Network Rack Gallery 2012 (Part 3) から約 6 ヶ月程経過しましたが、12 月は大きな変更がありました。共有サーバ ビジネスセレクトでは、お客様のデータ領
日替り (特大アジの開き)
3 週間程前にも いさば で 日本一美味しいサバの塩焼き をいただきましたが、今回は浜松から出張中の同僚がいたので、ここぞとばかりに連れていくことが出来ました。"そして日替り" は
名物黒豚餃子 並盛定食
久しぶりに 日本一美味しい黒豚餃子 でご紹介した 天鴻餃子房 を訪れました。神田錦町界隈に 3 店舗あることは知っていましたが、改めて見つけたホームページ 神田餃子屋 によると 8 店舗もありました。
小石川後楽園 (3)
東京メトロ後楽園駅から目白通りに突き当たる道を進んでいく光景が、秋になると黄色に染まります。これは 2011/12/12 の撮影です。私の住まいの綾瀬はここから電車で 20 分弱程度の距離ですが、この
ルフージュ (5)
久しぶりに 沖縄本島 (No. 47 – ジャッキー ステーキハウス) でステーキを堪能して昼寝した後は、ある facebook グループのメンバーとの飲み会に向けて安里に向かいました。私
つけそば 並盛 + ちゃーしゅーごはん
景色 (しょうぶ沼公園) を久しぶりに散策した後は、北綾瀬駅そばの わた井 を訪れました。足立区のみでなく、東京全体でも高評価に入る口コミに興味を引かれ、何度か訪れたことがあります。メニューは至ってシ
オリオンビール + お通し
facebook 沖縄ユーザーグループ が縁で沖縄好きな友達も増え、また改めてみんなで会おうと決めて、今度は 沖縄食彩 てぃ?だかんかん に集うことになりました。当初の予定から若干メンバーに変更があり
FreeBSD Logo
デスクトップやノート PC の環境を FreeBSD 9.1-RELEASE (amd64) から 10.1-RELEASE (amd64) に移行した際、ついに日本語入力を kinput2 + ca
Cafe やぶさち メニュー
沖縄本島 (No. 22 – いしぐふー 港町店) の続きです。ゴールデンウィークの前半は特に予定を決めていませんでしたので、先月同様南部を流してみることにしました。途中、まだ訪れたことの
Transcend JetFlash 530 64GB USB メモリ
VAIO Fit 13A (カスタマイズ – タッチパッド) の続きです。環境調整中に色々つまずいていますが、VAIO に問題がある訳ではなく Windows 8.1 Pro 固有の問題だ
Valid HTML5 Valid CSS3 Another HTML Lint