やわらかしかっけい

なんでもすぐに忘れてしまう自分のために

よく使う、WordPressのOGP設定

いまのところこうだが、ダメだったら都度修正する
(固定ページの存在をガン無視している)

<!--==============ogp===============-->
<?php
if (is_single()){
if(have_posts()): while(have_posts()): the_post();
echo '<meta property="og:type" content="article">';echo "\n";
echo '<meta property="og:description" content="'; echo mb_substr(get_the_excerpt(), 0, 100) ; echo '…">'; echo "\n";
endwhile; endif;
echo '<title>'; the_title(); echo '| サイト名</title>';echo "\n";
echo '<meta property="og:title" content="'; the_title(); echo ' | サイト名">';echo "\n";
echo '<meta property="og:url" content="'; the_permalink(); echo '">';echo "\n";
} else {
echo '<title>'; bloginfo('name'); echo '</title>';echo "\n";
echo '<meta property="og:type" content="website">';echo "\n";
echo '<meta property="og:description" content="'; bloginfo('description'); echo '">';echo "\n";
echo '<meta property="og:title" content="'; bloginfo('name'); echo '">';echo "\n";
echo '<meta property="og:url" content="'; echo site_url(); echo '">'; echo "\n";
}
$str = $post->post_content;
$searchPattern = '/<img.*?src=(["\'])(.+?)\1.*?>/i';
if (is_single()){
if (has_post_thumbnail()){
$image_id = get_post_thumbnail_id();
$image = wp_get_attachment_image_src( $image_id, 'full');
echo '<meta property="og:image" content="'.$image[0].'">';echo "\n";
} else if ( preg_match( $searchPattern, $str, $imgurl ) && !is_archive()) {
echo '<meta property="og:image" content="'.$imgurl[2].'">';echo "\n";
} else {
echo '<meta property="og:image" content="画像のURL">';echo "\n";
}
} else {
echo '<meta property="og:image" content="画像のURL">';echo "\n";
}
?>
<meta property="og:site_name" content="<?php bloginfo('name'); ?>">
<meta property="fb:admins" content="000000000000000000">
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@xxxxxxxxxxxxxxxx" />
<!--==============ogp===============-->

site_url()とhome_url()とbloginfo(url)

  • bloginfo(url)は非推奨という噂が
  • site_url()はWordPressがインストールされてるディレクトリのURL
  • home_url()はおおもとのサイトアドレス