うさぎのイラスト

ネットアンサー55備忘録

web技術を書いていきます

excerpt(抜粋文)の設定

-2015年10月15日-
【contentから抜粋を抽出するとき】 functions.phpに下記を書き込み
//抜粋分が自動的に生成される場合に最後に付与される文字列を変更します。
function cms_excerpt_more(){
	return '...';
}
add_filter('excerpt_more','cms_excerpt_more');

//抜粋分が自動的に生成される場合にデフォルトの文字数を変更します。
function cms_excerpt_length(){
	return 110;
}
add_filter('excerpt_mblength','cms_excerpt_length');


//固定ページで抜粋分を入力できるようにする。
add_post_type_support('page','excerpt');

// 30文字表示抜粋(自動生成時)表示テンプレートタグの定義
function the_short_excerpt() {
  add_filter('excerpt_mblength', 'short_excerpt_length', 11);
  the_excerpt();
  remove_filter('excerpt_mblength', 'short_excerpt_length', 11);
}

function short_excerpt_length() {
  return 30; 
}


// 20文字表示抜粋(自動生成時)表示テンプレートタグの定義
function the_resultsfirst_excerpt() {
  add_filter('excerpt_mblength', 'resultsfirst_excerpt_length', 11);
  the_excerpt();
  remove_filter('excerpt_mblength', 'resultsfirst_excerpt_length', 11);
}

function resultsfirst_excerpt_length() {
  return 20; 
}
【the_resultsfirst_excerpt】など自身で好きな名前の設定にすることができる。 【抜粋箇所にテキストを書き込んだ時】 この場合、文字制限・最後の...などは出力方法が少し違います。 出力したい箇所に下記コードを打ち込みます。 ※38文字制限で最後を...にするときの例
<?php echo mb_substr(get_the_excerpt(), 0, 38),"..."; ?>
【カスタムフイールド箇所を抜粋表示する】 書き換えるところはフィールド名だけでよい。
38文字抜粋するという設定です。
<?php 
   $hogehoge = mb_substr(get_post_meta($post->ID,'フィールド名', TRUE), 0,38) . '…';
   echo $hogehoge;
?>
※実験の結果リピーターで繰り返しをしたところは抜粋は出来なかった。