【wordpress】固定ページ投稿にdescription入力欄を付ける

固定ページのdescriptionは、[設定]>[一般]のキャッチフレーズをdescriptionじゃなくて、個別にしたい。

functions.phpにこれを足します。

//-----------------------------------------
// 投稿・固定ページ カスタムフィールド追加
//-----------------------------------------
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;
  $description = get_post_meta($post->ID,'description',true);
   
  echo '<p>description<br />';
  echo '<input type="text" name="description" value="'.esc_html($description).'" size="50" /></p>';
}
 
//-----------------------------------------
// カスタムフィールドの値を保存
//-----------------------------------------
function save_custom_fields( $post_id ) {
  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['description'][0])) {
  $description = $custom['description'][0];
}
?>
<?php if(is_home()): // トップページ ?>
<meta name="description" content="<?php bloginfo('description'); ?>" />

<?php elseif(is_single()): // シングルページ ?>
<meta name="description" content="<?php bloginfo('description'); ?>">

<?php elseif(is_page()): // 固定ページ ?>
<meta name="description" content="<?php echo $description ?>">

<?php elseif (is_category()): // カテゴリーページ ?>
<meta name="description" content="<?php single_cat_title(); ?>の記事一覧" />

<?php elseif (is_tag()): // タグページ ?>
<meta name="description" content="<?php single_tag_title("", true); ?>の記事一覧" />

<?php elseif(is_404()): // 404ページ ?>
<meta name="robots" content="noindex, follow" />

<?php else: // その他ページ ?>
<meta name="description" content="<?php bloginfo('description'); ?>" />

<?php endif; ?>
<?php
}

トップページ、シングルページ(投稿)などは[設定]からいれられるキャッチフレーズ、固定ページにはカスタムフィールドに入力したdescription文を出す。というもの。

そして、meta情報を入れるあたり(header.php)に

<?php MataTitle(); ?>

これを入れる。