WordPressテーマを作る時、<meta>要素のdiscription設定をページ毎に個別設定したくなりますよね。プラグインを使わず、基本は本文のテキストを自動抜粋で、気が向けば任意のテキストを出したい。
その為の設定です。
※元ネタのURLがわからなくなっていまいました。見つけ次第このページでご紹介します。
元の設定はdiscriptionに本文のテキストを取得するだけでしたが、【「抜粋」に入力があれば内容を取得し、無ければ本文のテキストを取得】という設定を追加しました。
functions.phpに追加
function auto_meta_description(){
global $post;
setup_postdata($post);
if( is_single() || is_page() ): //投稿と固定ページだったら
if (get_the_excerpt()) { //抜粋の入力があれば内容を取得
$description = get_the_excerpt();
}else{ //抜粋の入力が無ければ本文のテキストを120文字取得
$description = get_the_content();
$description = apply_filters( 'the_content', $description );
$description = str_replace( ']]>', ']]>', $description );
$description = wp_trim_words( $description , 120 );
}
else: //投稿と固定ページ以外は設定>一般のキャッチフレーズを取得
$description = get_bloginfo ( 'description' , display );
endif;
echo $description ;
}
header.phpに追加
<?php if(is_single()) { //投稿だったら ?>
<meta property="og:description" content="<?php auto_meta_description();?>" />
<?php } elseif(is_page()) { //固定ページだったら ?>
<meta property="og:description" content="<?php auto_meta_description();?>" />
<?php } else { //その他のコンテンツ ?>
<meta property="og:description" content="<?php bloginfo('description') ?>">
<?php } ?>
コメントを残す