SEO対策に必要なmeta情報を個別に設定する方法~WordPressで自分のブログを作る

プラグインなしでmeta情報を個別に設定できるようにカスタマイズしよう!

SEO対策に必要なmeta情報を個別に設定する方法

WordPressではSEO対策用のプラグインが沢山ありますね。ただ、便利だからといってプラグインをたくさん実装すると、ブログの表示速度が遅くなったり、アタックされやすくなったりするそうです。なるべく「プラグイン」なしで便利にしていきたいですね。

今回はプラグインを使用せず、カスタムフィールドを代用することで設定できるようにする方法をご紹介します。

functions.phpにカスタムフィールドの追加と各種設定を追加

WordPressのfunctions.phpファイルに下記を追記します。

※ここで注意ですが、functions.phpはWordPressを作動させるとても重要なファイルです。記述を間違えるとエラーでサイトが表示されなくなってしまいます。単なるWEBデザイナーの私なんかは、システムエラーの原因などすぐにわかるはずもなく、取り返しのつかないことになりますので、必ず加工する前にコピーを取ってすぐに元に戻せるようにしています。

//-----------------------------------------
// 投稿・固定ページ カスタムフィールド追加
//-----------------------------------------
add_action('admin_menu', 'add_custom_fields');
add_action('save_post', 'save_custom_fields');
function add_custom_fields() {
add_meta_box( 'my_sectionid', 'カスタムフィールド', 'my_custom_fields', 'post');
add_meta_box( 'my_sectionid', 'カスタムフィールド', 'my_custom_fields', 'page');
}
//-----------------------------------------
// カスタムフィールド表示
//-----------------------------------------
function my_custom_fields() {
global $post;
$keywords = get_post_meta($post->ID,'keywords',true);
$description = get_post_meta($post->ID,'description',true);
echo '<p>キーワード(カンマ区切り)<br />';
echo '<input type="text" name="keywords" value="'.esc_html($keywords).'" size="50" /></p>';
echo '<p>ページの説明<br />';
echo '<input type="text" name="description" value="'.esc_html($description).'" size="50" /></p>';
}
//-----------------------------------------
// カスタムフィールドの値を保存
//-----------------------------------------
function save_custom_fields( $post_id ) {
if(!empty($_POST['keywords']))
update_post_meta($post_id, 'keywords', $_POST['keywords'] );
else delete_post_meta($post_id, 'keywords');
if(!empty($_POST['description']))
update_post_meta($post_id, 'description', $_POST['description'] );
else delete_post_meta($post_id, 'description');
}
//-----------------------------------------
// ページ毎のmata要素とtitleの設定
//-----------------------------------------
function MataTitle() {
// カスタムフィールドの値を読み込む
$custom = get_post_custom();
if(!empty( $custom['keywords'][0])) {
$keywords = $custom['keywords'][0];
}
if(!empty( $custom['description'][0])) {
$description = $custom['description'][0];
}
?>
<?php if(is_home()): // トップページ ?>
<meta name="keywords" content="キーワード">
<meta name="description" content="説明文" />
<?php elseif(is_single()): // シングルページ ?>
<meta name="keywords" content="<?php echo $keywords ?>">
<meta name="description" content="<?php echo $description ?>">
<?php elseif(is_page()): // 固定ページ ?>
<meta name="keywords" content="<?php echo $keywords ?>">
<meta name="description" content="<?php echo $description ?>">
<?php elseif (is_category()): // カテゴリーページ ?>
<meta name="keywords" content="キーワード">
<meta name="description" content="説明文" />
<?php elseif (is_tag()): // タグページ ?>
<meta name="keywords" content="キーワード">
<meta name="description" content="説明文" />
<?php elseif(is_404()): // 404ページ ?>
<meta name="robots" content="noindex, follow" />
<?php else: // その他ページ ?>
<meta name="robots" content="noindex, follow" />
<?php endif; ?>
<?php
}

※なお、404ページとその他ページは<meta name=”robots” content=”noindex, follow” />にして、検索されないように設定しています。

header.phpにタグを追記

header.php 内の title タグ下あたりに下記タグを入れます。

<?php MataTitle(); ?>

functions.phpとheader.phpを上書きすると、WordPressの管理画面でカスタムフィールドが現れます。早速記入してみて、ソースに現れているか確認してみてください。

WordPress管理画面にカスタムフィールドが追加されている

きちんと記述されていれば完成です。これからは少し面倒ですが「description」(とついでに「keywords」も)を設定していけば、SEO対策にも良い影響があるでしょう。ぜひ試して見てくださいね。

30代、40代のフリーランスのWEBデザイナーを目指す女性への、ひとつの情報源やネタになれば幸いです。みなさんも、自分のペースでがんばってくださいね!

※今回参考にさせて頂いたサイト:WordPressのカスタムフィールドを使用したSEO対策施工の流れ

あなたもフリーランスはじめませんか?

フリーランスのデザインのお仕事探しのお手伝いをしてくれるサイトです。専門のエージェントも!登録は無料なので、まずは気軽に登録してみてくださいね。
※デザインのお仕事を見てみる⇒レバテッククリエイター

あわせて読みたい

コメントを残す

メールアドレスが公開されることはありません。