面妖な人形と和解したリル

meta要素のdiscriptionに本文か抜粋を出力したい(プラグイン無し)

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 } ?>
リル
これは面妖な人形と和解したリル

Comments

コメントを残す