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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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_ で始まる関数がありますが、これは望む表示をするためにひと工夫した関数です。テンプレートにも依存しますが、一例を。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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

寿がきや 富山ブラック (1)
近所のコンビニエンスストアで、ある日偶然にも珍しいカップラーメン 寿がきや 全国麺めぐり 富山ブラック を見つけました。2 年前に 富山出張 (No. 3 – 富山ブラック) を初めて体験
日替り定食 (沖縄ちゃんぽん)
2014/05/29, 2014/06/05 と 2 週に渡って カミングアウトバラエティ 秘密のケンミン SHOW で沖縄特集が組まれていました。普段テレビは見ないどころか自宅にテレビがないので、こ
からあげ弁当 (3)
自分の中では "御茶ノ水" 扱いしていますが、東京オフィス "神田錦町" のそばに、知る限りでは 14 年以上続いているお弁当屋 びっく・もっく があります。日
サントリーチューハイ -196℃ (2)
4 月に入ると、近所のコンビニエンスストアで去年も試してリピートした "沖縄パイナップル" を見かける様になりました。これは昨年の今頃の写真で "宮里農園" と
つけそば 並盛 + ちゃーしゅーごはん
景色 (しょうぶ沼公園) を久しぶりに散策した後は、北綾瀬駅そばの わた井 を訪れました。足立区のみでなく、東京全体でも高評価に入る口コミに興味を引かれ、何度か訪れたことがあります。メニューは至ってシ
日替そば (ニラカナそば + 定食)
うちなぁ料理と古酒家 ニライカナイ (ソーキそば定食) でメニューが多少変わっていたので、日を空けずに訪れました。実は 1 週間程前にも訪れましたが、その際はおかわり無料のじゅうしぃが切れて白ご飯だけ
真壁ちなー (4)
2012/11 の末にプライベートで沖縄を訪れた際、久しぶりに南部でゆったりした時間を取ることが出来たので、茶処 真壁ちなー を訪れたことがあります。南部ではかなり有名なお食事処の様です。糸満に近付く
プレミアム急冷器 (6)
プレミアム急冷器 (Part 1) の続きです。さて、いよいよ冷却開始です。直接氷を投入するレトロ感にも驚きましたが、EXTRA COLD (クーラー) と違って、タイマーが付いていません。金色のスイ
ザ・プレミアム・モルツ
最近電車の宙吊り広告で気になっていた ザ・プレミアム・モルツ <コクのブレンド> を試してみました。ザ・プレミアム・モルツと、最近すでに見掛けなくなったザ・プレミアム・モルツ <黒&
かつ丼 (1)
日本一美味しいサバの塩焼き でも書きましたが、銀座にサテライトオフィスを設けてそちらに勤務していたことがありました。5 – 6 年程前になります。その際に開拓したリーズナブルなお店の 1
Valid HTML5 Valid CSS3 Another HTML Lint