【WP】投稿・固定ページ記事編集画面にnoindexのチェック項目を追加する方法
WordPressサイトを運用していると、テスト確認中のページや会員向けページなど、
検索エンジンに乗ってほしくないページが出てきます。
header.phpへの条件分岐記述で特定のページのみnoindexにすることも出来ますが、
納品後、クライアントでphpファイルを扱うのはリスクが高い、といった場面で使える、
投稿・固定ページ記事編集画面にnoindexのチェック項目を追加する方法をご紹介します。
やりたいこと
投稿・固定ページ記事編集画面にnoindexのチェック項目を追加する
function.phpへコードを追加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
/****************************/ /** 投稿・固定ページ記事編集画面にnoindexのチェック項目を追加 **/ /****************************/ //メタボックスの追加 add_action( 'admin_menu', 'add_noindex_metabox' ); function add_noindex_metabox() { add_meta_box( 'custom_noindex', 'Noindex', 'create_noindex', array('post', 'page'), 'side' ); } // 管理画面にフィールドを出力 function create_noindex() { $keyname = 'noindex'; global $post; $get_value = get_post_meta( $post->ID, $keyname, true ); wp_nonce_field( 'action_' . $keyname, 'nonce_' . $keyname ); $value = 'noindex'; $checked = ''; if( $value === $get_value ) $checked = ' checked'; echo '<label><input type="checkbox" name="' . $keyname . '" value="' . $value . '"' . $checked . '>' . $keyname . '</label>'; } // カスタムフィールドの保存 add_action( 'save_post', 'save_custom_noindex' ); function save_custom_noindex( $post_id ) { $keyname = 'noindex'; if ( isset( $_POST['nonce_' . $keyname] )) { if( check_admin_referer( 'action_' . $keyname, 'nonce_' . $keyname ) ) { if( isset( $_POST[$keyname] )) { update_post_meta( $post_id, $keyname, $_POST[$keyname] ); } else { delete_post_meta( $post_id, $keyname, get_post_meta( $post_id, $keyname, true ) ); } } } } |
この記述により、投稿・固定ページ記事編集画面にnoindexのチェック項目が追加されます。
header.phpへコードを追加
1 2 3 4 5 |
<?php if(is_singular() && get_post_meta($post->ID , 'noindex' , true)){ echo '<meta name="robots" content="noindex">'; } ?> |
この記述により、チェックボックからの情報を受けて、noindexのタグが生成されます。