概要説明
記事ごとにnoindexの指定を行うようにできるカスタマイズ。カスタム投稿のpost_typeを指定することでカスタム投稿でもnoindex制御が行なえます。検索エンジンに表示させたくないページはこちらの機能でページごとに個別に設定が行なえます。
~ 目次 ~
固定ページ、投稿ページにnoindex用の項目を追加
functions.php
/*---------------------------------------------------- head内にカスタム用のコードを追加する ----------------------------------------------------*/ if ( !function_exists( 'custom_meta_robots' ) ){ function custom_meta_robots( array $robots ) { global $post; if ( isset($post->ID) ) { if ( get_post_meta( $post->ID, 'noindex' , true ) ) { $robots['noindex'] = true; $robots['follow'] = true; $robots['max-image-preview'] = false; } } return $robots; } add_filter( 'wp_robots', 'custom_meta_robots' ); } /*---------------------------------------------------- 編集画面(サイド)にチェックボックスエリアを表示 ----------------------------------------------------*/ if ( !function_exists( 'add_noindex_metabox' ) ){ function add_noindex_metabox() { add_meta_box( 'custom_noindex', 'インデックス設定', 'create_noindex', array('post', 'page'), 'side' ); } add_action( 'admin_menu', 'add_noindex_metabox' ); function create_noindex() { $key = 'noindex'; global $post; $get_value = get_post_meta( $post->ID, $key, true ); wp_nonce_field( 'action_' . $key, 'nonce_' . $key ); $value = 'noindex'; $c = ''; if( $value === $get_value ) $c = ' checked'; echo '<label><input type="checkbox" name="' . $key . '" value="' . $value .'"' . $c . '>' . $key . '</label>'; } } /*---------------------------------------------------- カスタムフィールドの保存 ----------------------------------------------------*/ if ( !function_exists( 'save_custom_noindex' ) ){ function save_custom_noindex( $post_id ) { $key = 'noindex'; if ( isset( $_POST['nonce_' . $key] )) { if( check_admin_referer( 'action_' . $key, 'nonce_' . $key ) ) { if( isset( $_POST[$key] )) { update_post_meta( $post_id, $key, $_POST[$key] ); } else { delete_post_meta( $post_id, $key, get_post_meta( $post_id, $key, true ) ); } } } } add_action( 'save_post', 'save_custom_noindex' ); }
HTMLソースにてnoindex確認
<html lang="ja"> <head > <meta charset="UTF-8"> <meta name="description" content="test..."> <meta name="viewport" content="width=device-width"> <title>...</title> <meta name='robots' content='noindex, follow' /> <link rel='dns-prefetch' href='//stats.wp.com' />
チェックを入れて保存すると
<meta name=’robots‘ content=’noindex, follow‘ />
がソースに表示されるようになります
カスタム投稿の編集画面に追加する場合
// 固定ページ、投稿ページの場合 array('post', 'page') // 固定ページ、投稿ページ、カスタム投稿ページを設定する場合 array('post', 'page', '例)news', 'カスタム投稿のpost_typeを指定')
noindex、nofollowについて
noindex | 検索結果に表示させないように制御する設定 |
---|---|
nofollow | ページに存在するリンクを検索エンジンがたどることを禁止する設定 |
max-image-preview | Discover など Google のプロダクトで表示されるサムネイル画像の大きさを指定 |