【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(); ?>
これを入れる。