▽1
●
rouge_2008 ●100ポイント ベストアンサー |
次のようにして改行コードを削除するといいようです。
<meta name="description" content="<?php if( is_single() ) echo ( has_excerpt() ) ? preg_replace( '!\n!', '', strip_tags( get_the_excerpt() ) ) : mb_substr( preg_replace( array('!\n!', '!\[[^]]+\]!'), '', strip_tags($post->post_content) ), 0, 200 ) ."..."; elseif( is_category() ) echo ( category_description() ) ? preg_replace( '!\n!', '', strip_tags( category_description() ) ) : '「'. trim( wp_title('', false) ) .'」のページです。';
※コンテンツ本文から取得する場合、ショートコードも削除するように変更してあります。
※カテゴリーディスクリプションが記述されていない場合や、年月別アーカイブ、固定ページ等ではタイトル+「のページです。」と表示するようにしているようですが、Googleのウェブマスターツールで「短いメタデータ」として検出される可能性があります。
また条件に一致しなかったページはすべて一般設定のキャッチフレーズを表示しますので、こちらは「重複するメタデータ」として検出される可能性があります。
検出されるページ数がある程度多くなると、検索順位にも何らかの影響がある可能性があります。
カテゴリーディスクリプションはすべて記入し、固定ページおよび年月別アーカイブについては、タイトル以外の出力を行うようにするなどした方が良さそうです。
さらに、最後の条件をトップページの場合にして、本文も取得・表示するようにした方がいいように思います。
※インデックスやアーカイブでは、「$post」には最初の投稿の情報が入っています。