メタタグを直書きする方法

需要あるのかわかりませんが書いていきます。

WordPressのタイトル、メタタグを直書きする

プラグイン使えば解決では?

はい。実はプラグインを使えば解決します。ただプラグインを使いたくない人向けにと、後なんらかの理由でプラグインがつかない人向けの記事です

プラグインを使う場合は?

All in One SEO Packを使えば完璧です。タイトル、メタタグなど全て設定できます。なんならOGPの設定もできます。

直書きのケース

プラグインを使わない場合は以下のようにして下さい。

タイトルタグ

<title><?php if ( is_home() ) { // トップページ ?>
	<?php bloginfo( 'name' ); ?>
<?php } else { // その他 ?>
	<?php wp_title( '' ); ?> | <?php bloginfo( 'name' ); ?>
<?php } ?>
</title>

タイトルタグは上記のようにします。次にメタタグをしていきます。

メタディスクリプション

functions.phpにコードを追加します

// get meta description from the content
function get_meta_description() {
  global $post;
  $description = "";
  if ( is_home() ) {
    // ホームでは、ブログの説明文を取得
    $description = get_bloginfo( 'description' );
  }
  elseif ( is_category() ) {
    // カテゴリーページでは、カテゴリーの説明文を取得
    $description = category_description();
  }
  elseif ( is_single() ) {
    if ($post->post_excerpt) {
      // 記事ページでは、記事本文から抜粋を取得
      $description = $post->post_excerpt;
    } else {
      // post_excerpt で取れない時は、自力で記事の冒頭100文字を抜粋して取得
      $description = strip_tags($post->post_content);
      $description = str_replace("\n", "", $description);
      $description = str_replace("\r", "", $description);
      $description = mb_substr($description, 0, 100) . "...";
    }
  } else {
    ;
  }
 
  return $description;
}
 
// echo meta description tag
function echo_meta_description_tag() {
  if ( is_home() || is_category() || is_single() ) {
    echo '<meta name="description" content="' . get_meta_description() . '" />' . "\n";
  }
}

このあとheader.phpを書き換えます

<?php echo_meta_description_tag(); ?>

これでディスクリプションは完成です。次にキーワードです

メタキーワード

メタキーワードはワードプレスのタグ機能を使います。タグ機能はデフォルトコード(the_tags)ではアンカーリンクがでるので別なコードを使います。header.phpを編集します

<meta name="keywords" content="<?php $posttags = get_the_tags(); $count = count($posttags); $loop = 0; if ($posttags) { foreach ($posttags as $tag) { $loop++; if ($count == $loop){ echo $tag->name . '';
	} else {
	echo $tag->name . ', ';
	}
	}
} ?>">

これで完成です。

参考サイト