2014年08月25日 web関連WordPressphp

WordPressの抜粋表示(excerpt)を以下のように動作させたかったので、自作してみました。

  1. 抜粋があれば抜粋表示
  2. moreタグがあれば、それに従う
  3. 指定文字数より本文文字数が少なければ、そのまま表示
  4. 指定文字数より本文文字数が多ければ抜粋表示

コード

functions.phpにコピペ。

<?php
//WordPress抜粋表示の変更
/****
1.抜粋があれば抜粋表示
2.moreタグがあれば、それに従う
3.$lengthより文字が少なければ、そのまま表示
4.$lengthより文字が多ければ抜粋表示
****/
function set_excerpt( $length=200 ){
	global $post;
	//抜粋が入力されていれば、抜粋表示($length無効)
	if(has_excerpt()) {
		$content = strip_tags(get_the_excerpt());
		$content = $content . '…'.'<div class="more"><a href="'.get_permalink().'" class="btn btn-default btn-md"><span class="glyphicon glyphicon-ok"></span> この記事の続きを読む</a></div>';
	//moreタグがある場合
	//}elseif(preg_match('/<!--more(.*?)?-->/u', $post->post_content, $matches)){
	}elseif(strpos($post->post_content,'<!--more')){
		global $more; $more = 0;
		$content = strip_tags(get_the_content(''));
		$content = $content . '…'.'<div class="more"><a href="'.get_permalink().'" class="btn btn-default btn-md"><span class="glyphicon glyphicon-ok"></span> この記事の続きを読む</a></div>';
	//本文の文字数が$lengthより少ない場合は全文表示
	}elseif(mb_strlen( $post -> post_content) <= $length){
			$content = strip_tags(get_the_content());
	}else{
		 $content = mb_substr( strip_tags( $post -> post_content ), 0, $length );
		 $content = $content . '…'.'<div class="more"><a href="'.get_permalink().'" class="btn btn-default btn-md"><span class="glyphicon glyphicon-ok"></span> この記事の続きを読む</a></div>';
	}	
		 return $content;
}

?>

使用方法

テーマファイルの本文の抜粋を表示させたいにset_excerpt();

この投稿へのコメント

コメントはまだありません。

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます。
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CAPTCHA


ピックアップ記事

WordPressで特定の親カテゴリとその子カテゴリに所属する場合の条件分岐の方法

2022年11月12日 WordPress
functions.phpに以下を記述 [php]if ( ! function_exists( 'post_is_in_descendant_category' ) ) { function post_is_in_descendant_category( $cats, $_post = null ) { foreach ( (array) $cats as $c…
「WordPressで特定の親カテゴリとその子カテゴリに所属する場合の条件分岐の方法」をはてなブックマークに追加

PHP IE6かどうかユーザーエージェントを調べる

2011年06月17日 php
IE6のシェアが低くなってきているので、いまさら感はありますが、それでもIE6を完全無視出来ない場合があるので、メモしておきます。 PHPでユーザーエージェントを見分けて、IE6とそれ以外を切り分ける時に使えると思います。 …
「PHP IE6かどうかユーザーエージェントを調べる」をはてなブックマークに追加

未解決 twitter関連のOAuth認証が通らない 

2011年05月27日 WordPress
WP to Twitterなど、twitter関連のOAuth認証が通らない 原因は不明だけど、サーバのcURLやら外部向けのHTTPS通信が許可されてないやら、その辺っぽい。 ちなみに現在使っているのは、お名前.comの共用サーバです。 VPSの方も契約してるんで、そっちに移行した方が早いかも。 http://bono.s201.xrea.com/pib/wpm/?p=32 twitt…
「未解決 twitter関連のOAuth認証が通らない 」をはてなブックマークに追加

WordPressでアイキャッチ画像を使う

2012年03月02日 WordPress
基本設定 function.phpに以下を追加 以下を追加することで、WordPressでアイキャッチ画像を使うことが可能になります。 これが設定されていないと、管理画面内の投稿ページにもアイキャッチ関連のボックスは表示されないようです。 [php]add_theme_support( 'post-thumbnails' ); [/php] アイキャッチを表示させる アイキャッチを呼び出すには…
「WordPressでアイキャッチ画像を使う」をはてなブックマークに追加
© graffiti on the web . All rights reserved. WordPress Theme by comfy