ENJILOGさんの記事で知り自身のウェブマスターツールでも確認したところ、同様のエラーが表示されていました。
WordPressユーザー要注意!~構造化データのエラーでアクセス激減?
stinger3を使われている方が色々と改善策をブログにアップされているのですが、その中でも「がんばれ現役パソコン修理人♪」さんの方法が良さそうだったので、当サイトもそれにならって修正することにしました。
※作業前は必ずバックアップを取っておいてください。
※作業は自己責任でお願いします。
構造化エラーを出さないようにする方法
エラーを出さないようにするためにENJILOGさんが紹介されていた、functions.phpを修正する方法を使いました。
下のコードをfunctions.phpの最後に追加するだけです。
1 2 3 4 5 6 |
function remove_hentry( $classes ) { $classes = array_diff($classes, array('hentry')); return $classes; } add_filter('post_class', 'remove_hentry'); |
Stinger3に構造化データをマークアップする方法
エラー内容の「authorがありません。」についてですが(※authorは著作表示のこと)、面倒なことにGoogle+との紐付けが必要なようです。
というわけで「新たに記事にマークアップしてやる方法」で対応しました。
まず【functions.php】に以下のコードを追加します。
1 2 3 4 5 6 7 8 9 10 11 12 |
function catch_that_image($content) { $first_img = ''; ob_start(); ob_end_clean(); $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $content, $matches); $first_img = $matches [1] [0]; if(empty($first_img)){ //Defines a default image $first_img = get_template_directory_uri()."/images/no-img.png"; } return $first_img; } |
次に【single.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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
<!--ループ開始--> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <div class="kizi" itemscope="itemscope" itemtype="http://schema.org/Article"> <meta itemprop="description" content="<?php if(get_post_meta($post->ID, _aioseop_description, true)): ?> <?php echo get_post_meta($post->ID, _aioseop_description, true); ?> <?php else : ?> <?php echo mb_substr(str_replace(array("\r\n", "\r", "\n"), '', strip_tags(get_the_excerpt())), 0, 100); ?> <?php endif; ?>"> <meta itemprop="image" content="<?php echo catch_that_image($post->post_content); ?>"> <h1 class="entry-title" itemprop="headline"> <?php the_title(); ?> </h1> <div class="blogbox"> <p><span class="kdate">公開日: <time itemprop="datePublished" class="entry-date" datetime="<?php the_time('Y-m-d') ;?>"> <?php the_time('Y/m/d') ;?> </time> : <?php if ($mtime = get_mtime('Y/m/d')) echo ' 最終更新日:' , $mtime; ?> </span> <?php $cats = get_the_category(); foreach( $cats as $key => $cat) { if($key) { echo ", "; } $category_link = get_category_link( $cat ); echo '<a href="' . $category_link . '" alt="' . $cat->cat_name . ' の投稿をすべて表示" rel="category tag"><span itemprop="keywords">' . $cat->cat_name . '</span></a>'; } ?> <?php $tags = get_the_tags(); foreach( $tags as $key => $tag) { if($key) { echo ", "; } $tag_link = get_tag_link( $tag ); echo '<a href="' . $tag_link . '" alt="' . $tag->name . '" rel="tag"><span itemprop="keywords">' . $tag->name . '</span></a>'; } ?> <br> </p> </div> <?php get_template_part('sns'); ?> <div itemprop="articleBody"> <?php the_content(); ?> </div> <?php wp_link_pages(); ?> </div> <div style="padding:20px 0px;"> <?php get_template_part('ad');?> </div> <div class="kizi02"> <?php get_template_part('sns');?> </div> <?php endwhile; else: ?> <p>記事がありません</p> <?php endif; ?> <!--ループ終了--> |
結果
約1週間程でエラーは無くなりました。
どういうわけか2つだけエラーがしぶとく残っていましたが、そのまま放っておいたらいつの間にかそれも消えていました。
参考
http://www.upgrade-pc.net/wordpress/stinger3-wordpress/post-116.html
http://rentalhomepage.com/updated-author/
http://rentalhomepage.com/post-13477/
http://tqs.jp/wp1/2014/01/25/082540/