SEO対策

Xeoryを削除してAll in one SEOのmeta情報だけ表示する方法

Xeoryのテーマを使い、WordPressのSEO対策として有名なプラグイン「All in one SEO」を入れると、Xeoryと「All in one SEO」でmeta情報がソースコード上で重複する問題が起きます。

今回はこの問題を解決するために、Xeoryが出力するmeta情報を非表示にする方法を解説します。

1:修正するファイルを開く

外観 > テーマの編集 > lib > functions > head.php を開きます。

2:修正箇所を見つけて、コメントアウトする

<?php


/* wp_headに表示するMETA/OGP
* ---------------------------------------- */


/* タイトル
それぞれにfilterを持たせることにより、柔軟に表示形式を変更できるようにした。
add_filter('bzb_title', func);
* ---------------------------------------- */
function bzb_title(){
  if( is_front_page() || is_home() ){
    $title = apply_filters('bzb_title', get_bloginfo('name'));
  }elseif( is_category() ){
    global $post;
      $t_id = get_category( intval( get_query_var('cat') ) )->term_id;
      $cat_class = get_category($t_id);
      $cat_option = get_option('cat_'.$t_id);
      if(isset($cat_option['bzb_meta_title']) && $cat_option['bzb_meta_title'] !== '' ){
        $title = apply_filters('bzb_title', $cat_option['bzb_meta_title']);
      }else{
        $title = apply_filters('bzb_title', $cat_class->name);
      }
  }elseif( is_date() ){
    if( is_day() ){
      $title  = get_query_var( 'year' ).'年';
      $title .= get_query_var( 'monthnum' ).'月';
      $title .= get_query_var( 'day' ).'日';
      $title  = apply_filters('bzb_title', $title);
    }elseif( is_month() ){
      $title  = get_query_var( 'year' ).'年';
      $title .= get_query_var( 'monthnum' ).'月';
      $title  = apply_filters('bzb_title', $title);
    }elseif( is_year() ){
      $title  = get_query_var( 'year' ).'年';
      $title  = apply_filters('bzb_title', $title);
    }
  }elseif( is_tag() ){
    $title = apply_filters('bzb_title', single_tag_title('', false));
  }elseif( is_archive() ){
    $title = apply_filters('bzb_title', wp_title(''));
  }elseif( is_search() ){
    $title .= '「'.get_search_query().'」の検索結果';
  }else{
    $title = apply_filters('bzb_title', get_the_title());
  }
  echo $title;
}

function get_bzb_title(){
  if( is_category() ){
    global $post;
      $t_id = get_category( intval( get_query_var('cat') ) )->term_id;
      $cat_class = get_category($t_id);
      $cat_option = get_option('cat_'.$t_id);
      if( isset($cat_option['bzb_meta_title']) && $cat_option['bzb_meta_title'] !== '' ){
        $title = $cat_option['bzb_meta_title'];
      }else{
        $title = $cat_class->name;
      }
  }else{
    $title = get_the_title();
  }
  return $title;
}


/* add comment..
* ---------------------------------------- */
if( !function_exists('bzb_header_meta') ){

  add_action('wp_head', 'bzb_header_meta', 1);
  function bzb_header_meta(){

    global $post;
    global $term_id;


    $keyword = '';
    $description = '';
    $title = '';
    $type = '';
    $url = '';
    $image = '';


    // カテゴリーディスクリプションのPを削除
    remove_filter('term_description','wpautop');

    // OGP
    // og:title / og:type / og:description
    //
    if( is_front_page() || is_home() ){

      // TOPページ / HOMEページ

      $title = get_bloginfo('title');
      $type  = 'website';
      $description = get_bloginfo('description');
      $url =  home_url()  .'/';

      $logo_image = get_option('logo_image');
      $def_image = get_option('def_image');
      if( isset($def_image) ){
        $image = $def_image;
      }else{
        $image = $logo_image;
      }

      $keyword = get_option('meta_keywords');

    }elseif( is_category() ){

      // カテゴリーページ

      $t_id = get_category( intval( get_query_var('cat') ) )->term_id;
      $cat_class = get_category($t_id);

      $cat_option = get_option('cat_'.$t_id);
      if( is_array($cat_option) ){
        $cat_option = array_merge(array(
        'bzb_meta_title' => '',
        'bzb_meta_keywords' => ''),$cat_option);
      }
      if( isset($cat_option['bzb_meta_title']) && $cat_option['bzb_meta_title'] !== '' ){
        $title = $cat_option['bzb_meta_title'];
      }else{
        $title = $cat_class->name;
      }
      $type = 'article';
      $description = esc_attr(category_description()) ;
      $url = get_category_link($t_id);
      if( isset($cat_option['bzb_category_image']) && $cat_option['bzb_category_image'] !== '' ){
        $image = $cat_option['bzb_category_image'];
      }else{
        $image = get_option('def_image');
      }
      $keyword = $cat_option['bzb_meta_keywords'];

    }elseif( is_tag() ){

      // タグページ
      $t_id = get_queried_object_id();
      $title = single_tag_title('', false);
      $type = 'article';
      $description = esc_attr(tag_description());
      $url = get_tag_link($t_id);
      $image = '';
      $keyword = '';

    }elseif( is_search() ){
      //検索結果ページ
      $title .= '「'.get_search_query().'」の検索結果';
    }else{

      // その他のページ
      if( isset($post) ){
        $post_meta = get_post_meta($post->ID);

        $title = get_the_title();
        $type  = 'article';
        $description = get_post_meta( $post->ID,  'bzb_meta_description', true ) ? get_post_meta( $post->ID,  'bzb_meta_description', true ) : get_the_excerpt();
        $url = get_permalink();
        if( has_post_thumbnail($post->ID) ){
          $pre_image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), true);
          if(is_array($pre_image));
          $image = (empty($pre_image)) ? "" : reset( $pre_image );
        }else{
          $image = get_option('def_image');
        }
        $keyword = isset($post_meta['bzb_meta_keywords'][0]) ? $post_meta['bzb_meta_keywords'][0] : '';
      }
    }

    // META
    $meta = '';
    $meta = '<meta name="keywords" content="'.$keyword.'" />' . "\n";
    $meta .= '<meta name="description" content="'.$description.'" />' . "\n";
    $robots = "";

    if( is_front_page() || is_home() ){
      $set .= '';
    }elseif( is_category() ){
      if( (isset($cat_option['bzb_meta_robots'][0]) && $cat_option['bzb_meta_robots'][0] == 'noindex') && (isset($cat_option['bzb_meta_robots'][1]) && $cat_option['bzb_meta_robots'][1] == 'nofollow' ) ){
        $robots = 'noindex,nofollow';
      }elseif( (isset($cat_option['bzb_meta_robots'][0]) && $cat_option['bzb_meta_robots'][0] == 'noindex') && (isset($cat_option['bzb_meta_robots'][1]) && $cat_option['bzb_meta_robots'][1] == null) ){
        $robots = 'noindex';
      }elseif( (isset($cat_option['bzb_meta_robots'][0]) && $cat_option['bzb_meta_robots'][0] == null) && (isset($cat_option['bzb_meta_robots'][1]) && $cat_option['bzb_meta_robots'][1] == 'nofollow' ) ){
        $robots = 'nofollow';
      }else{
        $robots = 'index';
      }
      if( get_option('blog_public') ){
        $set .= '<meta name="robots" content="'.$robots.'" />' . "\n";
      }
    }else{
      if( isset($post) ){
        $post_meta = get_post_meta($post->ID);
        ( isset($post_meta['bzb_meta_robots']) ) ? $bzb_meta_robots_arr = unserialize($post_meta['bzb_meta_robots'][0]): '';
        if( isset($bzb_meta_robots_arr) && in_array("noindex",$bzb_meta_robots_arr) && in_array("nofollow",$bzb_meta_robots_arr) ){
          $robots = 'noindex,nofollow';
        }elseif( isset($bzb_meta_robots_arr) && in_array("noindex",$bzb_meta_robots_arr) ){
          $robots = 'noindex';
        }elseif( isset($bzb_meta_robots_arr) && in_array("nofollow",$bzb_meta_robots_arr) ){
          $robots = 'nofollow';
        }else{
          $robots = 'index';
        }
        if( get_option('blog_public') ){
          $set .= '<meta name="robots" content="'.$robots.'" />' . "\n";
        }
      }
    }

    if( is_paged() ){
      $meta.= '<meta name="robots" content="noindex,nofollow">' . "\n";
    }else{
      $meta.= $set;
    }

    $facebook_user_id =  get_option('facebook_user_id');
    if( $facebook_user_id || $facebook_user_id !== '' ){
      $meta .= '<meta property="fb:admins" content="'.esc_html($facebook_user_id).'" />' . "\n";
    }

    $facebook_app_id =  get_option('facebook_app_id');
    if( $facebook_app_id || $facebook_app_id !== '' ){
      $meta .= '<meta property="fb:app_id" content="'.esc_html($facebook_app_id).'" />' . "\n";  
    }

    // OGP

    $meta .= '<meta property="og:title" content="'.esc_html($title).'" />' . "\n";
    $meta .= '<meta property="og:type" content="'.esc_html($type).'" />' . "\n";
    $meta .= '<meta property="og:description" content="'.esc_textarea($description).'" />' . "\n";
    $meta .= '<meta property="og:url" content="'.esc_url($url).'" />' . "\n";
    $meta .= '<meta property="og:image" content="'.esc_url($image).'" />' . "\n";
    $meta .= '<meta property="og:locale" content="ja_JP" />' . "\n";
    $meta .= '<meta property="og:site_name" content="'.esc_html(get_bloginfo('name')).'" />' . "\n";
    $meta .= '<link href="https://plus.google.com/'. esc_html(get_option('google_publisher')) .'" rel="publisher" />' . "\n";

    $twitter_id = get_option("twitter_id");
    if($twitter_id || $twitter_id){
      $meta .='<meta content="summary" name="twitter:card" />' . "\n";
      $meta .= '<meta content="' .esc_html($twitter_id) . '" name="twitter:site" />'. "\n\n";
    }

    echo $meta;
  }
}//function_exists

/* ページ固有のJS(ヘッダー内)
* ---------------------------------------- */
add_action('wp_head', 'bzb_post_javascript4head', 888);

function bzb_post_javascript4head(){
  global $post;

  if( !is_object($post) ){
        return;
  }
  $bzb_post_asset_js4head = get_post_meta( $post->ID ,'bzb_post_asset_js4head', true);
  if( isset($bzb_post_asset_js4head) && is_array($bzb_post_asset_js4head) ){
    $reset_js = $bzb_post_asset_js4head;
    $js = reset($reset_js);
  }else{
    $js = $bzb_post_asset_js4head;
  }
  if( $js && $js !==''){
  ?>
      <?php echo $js; ?>
  <?php
  }
}


/* ページ固有のcss
* ---------------------------------------- */
add_action('wp_head', 'bzb_post_style', 888);

function bzb_post_style(){
  global $post;

  if( !is_object($post) ){
        return;
  }

  if( is_array(get_post_meta( $post->ID ,'bzb_post_asset_css')) ){
    $reset_css = get_post_meta( $post->ID ,'bzb_post_asset_css');
    $css = reset($reset_css);
  }else{
    $css = get_post_meta( $post->ID ,'bzb_post_asset_css');
  }
  if( $css && $css !=='' ){
  ?>
    <style type="text/css">
      <?php echo $css; ?>
    </style>
  <?php
  }
}


/* ページ固有のjs
* ---------------------------------------- */
add_action('wp_footer', 'bzb_post_javascript', 999);

function bzb_post_javascript(){
  global $post;
  if( !is_object($post) ){
        return;
  }
  $bzb_post_asset_js = get_post_meta( $post->ID ,'bzb_post_asset_js4head', true);
// print_r($post);
  echo $bzb_post_asset_js;
  if( isset($bzb_post_asset_js) && is_array($bzb_post_asset_js) ){
    $reset_js = $bzb_post_asset_js;
    $js = reset($reset_js);
  }else{
    $js = $bzb_post_asset_js;
  }
  if( $js && $js !==''){
  ?>
      <?php echo $js; ?>
  <?php
  }else{
    echo '';
  }
}

73行目当たりにある「add_action(‘wp_head’, ‘bzb_header_meta’, 1);」を次のように変更します。

<?php


/* wp_headに表示するMETA/OGP
* ---------------------------------------- */


/* タイトル
それぞれにfilterを持たせることにより、柔軟に表示形式を変更できるようにした。
add_filter('bzb_title', func);
* ---------------------------------------- */
function bzb_title(){
  if( is_front_page() || is_home() ){
    $title = apply_filters('bzb_title', get_bloginfo('name'));
  }elseif( is_category() ){
    global $post;
      $t_id = get_category( intval( get_query_var('cat') ) )->term_id;
      $cat_class = get_category($t_id);
      $cat_option = get_option('cat_'.$t_id);
      if(isset($cat_option['bzb_meta_title']) && $cat_option['bzb_meta_title'] !== '' ){
        $title = apply_filters('bzb_title', $cat_option['bzb_meta_title']);
      }else{
        $title = apply_filters('bzb_title', $cat_class->name);
      }
  }elseif( is_date() ){
    if( is_day() ){
      $title  = get_query_var( 'year' ).'年';
      $title .= get_query_var( 'monthnum' ).'月';
      $title .= get_query_var( 'day' ).'日';
      $title  = apply_filters('bzb_title', $title);
    }elseif( is_month() ){
      $title  = get_query_var( 'year' ).'年';
      $title .= get_query_var( 'monthnum' ).'月';
      $title  = apply_filters('bzb_title', $title);
    }elseif( is_year() ){
      $title  = get_query_var( 'year' ).'年';
      $title  = apply_filters('bzb_title', $title);
    }
  }elseif( is_tag() ){
    $title = apply_filters('bzb_title', single_tag_title('', false));
  }elseif( is_archive() ){
    $title = apply_filters('bzb_title', wp_title(''));
  }elseif( is_search() ){
    $title .= '「'.get_search_query().'」の検索結果';
  }else{
    $title = apply_filters('bzb_title', get_the_title());
  }
  echo $title;
}

function get_bzb_title(){
  if( is_category() ){
    global $post;
      $t_id = get_category( intval( get_query_var('cat') ) )->term_id;
      $cat_class = get_category($t_id);
      $cat_option = get_option('cat_'.$t_id);
      if( isset($cat_option['bzb_meta_title']) && $cat_option['bzb_meta_title'] !== '' ){
        $title = $cat_option['bzb_meta_title'];
      }else{
        $title = $cat_class->name;
      }
  }else{
    $title = get_the_title();
  }
  return $title;
}


/* add comment..
* ---------------------------------------- */
if( !function_exists('bzb_header_meta') ){

  // add_action('wp_head', 'bzb_header_meta', 1);
  function bzb_header_meta(){

    global $post;
    global $term_id;


    $keyword = '';
    $description = '';
    $title = '';
    $type = '';
    $url = '';
    $image = '';


    // カテゴリーディスクリプションのPを削除
    remove_filter('term_description','wpautop');

    // OGP
    // og:title / og:type / og:description
    //
    if( is_front_page() || is_home() ){

      // TOPページ / HOMEページ

      $title = get_bloginfo('title');
      $type  = 'website';
      $description = get_bloginfo('description');
      $url =  home_url()  .'/';

      $logo_image = get_option('logo_image');
      $def_image = get_option('def_image');
      if( isset($def_image) ){
        $image = $def_image;
      }else{
        $image = $logo_image;
      }

      $keyword = get_option('meta_keywords');

    }elseif( is_category() ){

      // カテゴリーページ

      $t_id = get_category( intval( get_query_var('cat') ) )->term_id;
      $cat_class = get_category($t_id);

      $cat_option = get_option('cat_'.$t_id);
      if( is_array($cat_option) ){
        $cat_option = array_merge(array(
        'bzb_meta_title' => '',
        'bzb_meta_keywords' => ''),$cat_option);
      }
      if( isset($cat_option['bzb_meta_title']) && $cat_option['bzb_meta_title'] !== '' ){
        $title = $cat_option['bzb_meta_title'];
      }else{
        $title = $cat_class->name;
      }
      $type = 'article';
      $description = esc_attr(category_description()) ;
      $url = get_category_link($t_id);
      if( isset($cat_option['bzb_category_image']) && $cat_option['bzb_category_image'] !== '' ){
        $image = $cat_option['bzb_category_image'];
      }else{
        $image = get_option('def_image');
      }
      $keyword = $cat_option['bzb_meta_keywords'];

    }elseif( is_tag() ){

      // タグページ
      $t_id = get_queried_object_id();
      $title = single_tag_title('', false);
      $type = 'article';
      $description = esc_attr(tag_description());
      $url = get_tag_link($t_id);
      $image = '';
      $keyword = '';

    }elseif( is_search() ){
      //検索結果ページ
      $title .= '「'.get_search_query().'」の検索結果';
    }else{

      // その他のページ
      if( isset($post) ){
        $post_meta = get_post_meta($post->ID);

        $title = get_the_title();
        $type  = 'article';
        $description = get_post_meta( $post->ID,  'bzb_meta_description', true ) ? get_post_meta( $post->ID,  'bzb_meta_description', true ) : get_the_excerpt();
        $url = get_permalink();
        if( has_post_thumbnail($post->ID) ){
          $pre_image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), true);
          if(is_array($pre_image));
          $image = (empty($pre_image)) ? "" : reset( $pre_image );
        }else{
          $image = get_option('def_image');
        }
        $keyword = isset($post_meta['bzb_meta_keywords'][0]) ? $post_meta['bzb_meta_keywords'][0] : '';
      }
    }

    // META
    $meta = '';
    $meta = '<meta name="keywords" content="'.$keyword.'" />' . "\n";
    $meta .= '<meta name="description" content="'.$description.'" />' . "\n";
    $robots = "";

    if( is_front_page() || is_home() ){
      $set .= '';
    }elseif( is_category() ){
      if( (isset($cat_option['bzb_meta_robots'][0]) && $cat_option['bzb_meta_robots'][0] == 'noindex') && (isset($cat_option['bzb_meta_robots'][1]) && $cat_option['bzb_meta_robots'][1] == 'nofollow' ) ){
        $robots = 'noindex,nofollow';
      }elseif( (isset($cat_option['bzb_meta_robots'][0]) && $cat_option['bzb_meta_robots'][0] == 'noindex') && (isset($cat_option['bzb_meta_robots'][1]) && $cat_option['bzb_meta_robots'][1] == null) ){
        $robots = 'noindex';
      }elseif( (isset($cat_option['bzb_meta_robots'][0]) && $cat_option['bzb_meta_robots'][0] == null) && (isset($cat_option['bzb_meta_robots'][1]) && $cat_option['bzb_meta_robots'][1] == 'nofollow' ) ){
        $robots = 'nofollow';
      }else{
        $robots = 'index';
      }
      if( get_option('blog_public') ){
        $set .= '<meta name="robots" content="'.$robots.'" />' . "\n";
      }
    }else{
      if( isset($post) ){
        $post_meta = get_post_meta($post->ID);
        ( isset($post_meta['bzb_meta_robots']) ) ? $bzb_meta_robots_arr = unserialize($post_meta['bzb_meta_robots'][0]): '';
        if( isset($bzb_meta_robots_arr) && in_array("noindex",$bzb_meta_robots_arr) && in_array("nofollow",$bzb_meta_robots_arr) ){
          $robots = 'noindex,nofollow';
        }elseif( isset($bzb_meta_robots_arr) && in_array("noindex",$bzb_meta_robots_arr) ){
          $robots = 'noindex';
        }elseif( isset($bzb_meta_robots_arr) && in_array("nofollow",$bzb_meta_robots_arr) ){
          $robots = 'nofollow';
        }else{
          $robots = 'index';
        }
        if( get_option('blog_public') ){
          $set .= '<meta name="robots" content="'.$robots.'" />' . "\n";
        }
      }
    }

    if( is_paged() ){
      $meta.= '<meta name="robots" content="noindex,nofollow">' . "\n";
    }else{
      $meta.= $set;
    }

    $facebook_user_id =  get_option('facebook_user_id');
    if( $facebook_user_id || $facebook_user_id !== '' ){
      $meta .= '<meta property="fb:admins" content="'.esc_html($facebook_user_id).'" />' . "\n";
    }

    $facebook_app_id =  get_option('facebook_app_id');
    if( $facebook_app_id || $facebook_app_id !== '' ){
      $meta .= '<meta property="fb:app_id" content="'.esc_html($facebook_app_id).'" />' . "\n";  
    }

    // OGP

    $meta .= '<meta property="og:title" content="'.esc_html($title).'" />' . "\n";
    $meta .= '<meta property="og:type" content="'.esc_html($type).'" />' . "\n";
    $meta .= '<meta property="og:description" content="'.esc_textarea($description).'" />' . "\n";
    $meta .= '<meta property="og:url" content="'.esc_url($url).'" />' . "\n";
    $meta .= '<meta property="og:image" content="'.esc_url($image).'" />' . "\n";
    $meta .= '<meta property="og:locale" content="ja_JP" />' . "\n";
    $meta .= '<meta property="og:site_name" content="'.esc_html(get_bloginfo('name')).'" />' . "\n";
    $meta .= '<link href="https://plus.google.com/'. esc_html(get_option('google_publisher')) .'" rel="publisher" />' . "\n";

    $twitter_id = get_option("twitter_id");
    if($twitter_id || $twitter_id){
      $meta .='<meta content="summary" name="twitter:card" />' . "\n";
      $meta .= '<meta content="' .esc_html($twitter_id) . '" name="twitter:site" />'. "\n\n";
    }

    echo $meta;
  }
}//function_exists

/* ページ固有のJS(ヘッダー内)
* ---------------------------------------- */
add_action('wp_head', 'bzb_post_javascript4head', 888);

function bzb_post_javascript4head(){
  global $post;

  if( !is_object($post) ){
        return;
  }
  $bzb_post_asset_js4head = get_post_meta( $post->ID ,'bzb_post_asset_js4head', true);
  if( isset($bzb_post_asset_js4head) && is_array($bzb_post_asset_js4head) ){
    $reset_js = $bzb_post_asset_js4head;
    $js = reset($reset_js);
  }else{
    $js = $bzb_post_asset_js4head;
  }
  if( $js && $js !==''){
  ?>
      <?php echo $js; ?>
  <?php
  }
}


/* ページ固有のcss
* ---------------------------------------- */
add_action('wp_head', 'bzb_post_style', 888);

function bzb_post_style(){
  global $post;

  if( !is_object($post) ){
        return;
  }

  if( is_array(get_post_meta( $post->ID ,'bzb_post_asset_css')) ){
    $reset_css = get_post_meta( $post->ID ,'bzb_post_asset_css');
    $css = reset($reset_css);
  }else{
    $css = get_post_meta( $post->ID ,'bzb_post_asset_css');
  }
  if( $css && $css !=='' ){
  ?>
    <style type="text/css">
      <?php echo $css; ?>
    </style>
  <?php
  }
}


/* ページ固有のjs
* ---------------------------------------- */
add_action('wp_footer', 'bzb_post_javascript', 999);

function bzb_post_javascript(){
  global $post;
  if( !is_object($post) ){
        return;
  }
  $bzb_post_asset_js = get_post_meta( $post->ID ,'bzb_post_asset_js4head', true);
// print_r($post);
  echo $bzb_post_asset_js;
  if( isset($bzb_post_asset_js) && is_array($bzb_post_asset_js) ){
    $reset_js = $bzb_post_asset_js;
    $js = reset($reset_js);
  }else{
    $js = $bzb_post_asset_js;
  }
  if( $js && $js !==''){
  ?>
      <?php echo $js; ?>
  <?php
  }else{
    echo '';
  }
}

Xeoryのmeta情報が消えたのを確認する

適当な記事で「右クリック」して「ページのソースを表示」を選択。

見事、Xeoryのmeta情報を非表示にすることができました。