OGP設定メモ

WordPressのOGP用のプラグインがほかのと競合してしまったので。
自力で頑張れよって話なのかもしれない。
あくまでこのブログの設定用ですので使いまわす時は適当に入れ替えてください。

[html]
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# article: http://ogp.me/ns/article#">
<?php
if(!is_singular())
{
?>
<meta property="og:type" content="blog">
<meta property="og:url" content="<?php echo home_url(); ?>/">
<meta property="og:title" content="<?php bloginfo(‘name’); ?>">
<meta property="og:image" content="http://lilting.ch/wp-content/themes/lilting-theme/img/600×400.png">
<meta property="og:description" content="<?php bloginfo(‘description’); ?>">
<?php
}else{
global $post;
$img = ”;
$output = preg_match_all(‘/<img.+src=[\’"]([^\’"]+)[\’"].*>/i’, $post->post_content, $matches);
$thumbnail_id = get_post_thumbnail_id();
if(count($output)>1&&count($output[1])>0)
{
//添付画像がある
$img= $matches[1][0];
}elseif(is_numeric($thumbnail_id)&&$thumbnail_id>0)
{
$eye_img = wp_get_attachment_image_src($thumbnail_id, ‘full’ );
$img = $eye_img[0];
}else{
$img = ‘http://lilting.ch/wp-content/themes/lilting-theme/img/600×400.png’;
}
$description = mb_strimwidth(strip_tags(preg_replace(‘/(\s| )/’,”,str_replace(array("\r\n","\n","\r"), ”, $post->post_content))),0,197,’…’)
?>
<meta property="og:type" content="article">
<meta property="og:url" content="<?php echo get_permalink(); ?>">
<meta property="og:title" content="<?php echo $post->post_title; ?>">
<meta property="og:image" content="<?php echo $img; ?>" />
<meta property="og:description" content="<?php echo $description; ?>" />
<?php
}
?>
<meta property="og:site_name" content="><?php bloginfo(‘name’); ?>">
<meta property="article:publisher" content="<?php echo home_url(); ?>/">
[/html]

概要ではなくて本文からぶっこ抜いているのは、moreタグの関係です。
attachmentからじゃなくて本文から画像抜いているのは、一番上の画像を大体使いたいかなあと思って。
順番入れ替えることもあるし。その辺は気分で。
home_url();は後ろにスラッシュ入れておいたほうがWarning出ないと思います。
typeのblogwebsiteでもいいですが、トップページにのみ指定してください。
今回のは個別ページ、記事等以外のページではすべてトップページのURLをOGPに設定しているのであんまり気にしてませんが。
カテゴリページとかは別にいいねんと思って。やりたい方は細かくどうぞ。

テストはこちらで確認してください。

Open Graph Object Debugger