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(']]>', ']]>', $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 で作られているので、いたしかたありませんね。
- WordPress HTML5, CSS3 Valid (No. 1)
- WordPress HTML5, CSS3 Valid (No. 2)
- WordPress HTML5, CSS3 Valid (No. 3)









