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で、現在の固定ページが子ページかどうか判別する

2013年10月03日 WordPressphp
WordPressで、現在の固定ページが子ページかどうか判別する
WordPressには、is_front_page() 、is_single() など、様々な条件分岐タグが用意されていますが、子ページかどうかを判別するタグはデフォルトでは用意されていないようなので、調べてみたら、WordPress Codex内にいくつかのパターンが説明されていたので、まとめてみます。 パターン1 判別したい箇所に以下を記述 [php]<?php glob…
「WordPressで、現在の固定ページが子ページかどうか判別する」をはてなブックマークに追加

Twitter API を使わずにプロフィール画像を取得する

2011年07月29日 web関連twitter API
Twitter APIを使っていると、プロフィール画像の取得だけで、さくさく利用限度が減って行きます。 公式のAPIを使わず、もっと簡単に画像を取得出来る方法があるようなので、ご紹介。 …
「Twitter API を使わずにプロフィール画像を取得する」をはてなブックマークに追加

Timestamp out of bounds と表示される時

2011年07月26日 web関連php
プログラムを実行しようとすると「Timestamp out of bounds」というエラーが表示されました。 何かと思って調べてみると、どうやらサーバの時間がずれている模様。 なので、以下のようにして解決。 …
「Timestamp out of bounds と表示される時」をはてなブックマークに追加

【無料】IPから国番号、組織情報、位置情報などを取得可能なサービス

2022年10月26日 php
使い方 ip2location.io 使い方は簡単で、上記サイトに無料アカウント登録し、API KEYを取得します。 API KEYと情報を取得したいIPをパラメータに設定して、 以下のURLにアクセスすれば、情報が取得できます。 [php]https://api.ip2location.io/?ip=218.42.223.17&key=【API KEY】&ip=【IP】…
「【無料】IPから国番号、組織情報、位置情報などを取得可能なサービス」をはてなブックマークに追加

twitter公式ウィジェットの背景色をクリアにする

2011年05月26日 web関連
ブログやサイトなんかにtwitterウィジェットを使う事が多くなりましたが、ウィジェットの背景を透明にしないとサイトにマッチしないなぁという場合もあるかと思いますので、その方法を書いておきます。簡単ですが。。。(笑) theme: {    shell: {      background: 'none',  …
「twitter公式ウィジェットの背景色をクリアにする」をはてなブックマークに追加
© graffiti on the web . All rights reserved. WordPress Theme by comfy