the_excerpt関数で読み込まれた抜粋の文字数と文末は、初期設定で55文字と […] が付く仕様になっています。日本語環境では、全角文字を2バイトでカウントするので短くなります。そのため、デフォルトで「WP Multibyte Patch」がインストールされ文字数が110文字表示に変更されています。

この、文字数を増やしたり減らしたりすることが多々ありますのでその方法を紹介します。

WP Multibyte Patchで変更

すべての抜粋を、一括で変更する方には簡単にできるおすすめの方法です。

wp-multibyte-patch.phpで文字数変更

管理画面プラグインからWP Multibyte Patchの編集をクリック、wp-multibyte-patch/wp-multibyte-patch.phpを開きます。

'excerpt_mblength' => 110,//32行目デフォルト値

110が文字数の指定なので表示させたい文字数に変更して保存すれば反映されます。

wp-multibyte-patch.phpで文末文字 […]変更

'bp_excerpt_more' => ' […]'//55行目デフォルト値

”内が文末文字です。

wpmp-config.phpで文字数変更

WP Multibyte Patchのデフォルトで用意してあるファイルを利用する方法です。

FTPで/wp-content/plugins/wp-multibyte-patch/を開き/wpmp-config-sample-ja.phpを/wp-content/直下に右クリック移動、ファイル名を/wpmp-config.phpに変更します。

$wpmp_conf['excerpt_mblength'] = 110;//25行目デフォルト値

110が文字数の指定なので表示させたい文字数に変更して保存すれば反映されます。

wpmp-config.phpで文末文字 […]変更

$wpmp_conf['excerpt_more'] = ' […]';//33行目デフォルト値

”内が文末文字です。

functions.phpで変更

WP Multibyte Patchをインストールしていない方は、日本語Codexで紹介されているfunctions.phpに以下のコードを記入する方法になります。

functions.phpで文字数変更

function custom_excerpt_length( $length ) {
     return 110;	
}	
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

returnの後に半角数字で文字数を指定しています。

functions.phpで文末文字 […]変更

function new_excerpt_more($more) {
	return '...';
}
add_filter('excerpt_more', 'new_excerpt_more');

returnの後の”内が文末文字になります。

デザインの関係上などから、個別に文字数を制限しないといけない場合もあります。その場合は、get_the_excerpt関数を使い、表示させたい場所に以下のコードを記入します。

個別に文字数変更

<?php echo mb_substr(get_the_excerpt(), 0, 110); ?>

110が文字数の指定なので表示させたい文字数に変更

続きを読むリンク

抜粋の後に『続きを読む』リンクを設置するには、php the_permalink()を利用します。

<a href="<?php the_permalink() ?>">続きを読む</a>

cssでコーディング例

/*続きを読む*/
.more-link {
	text-align: right;
	margin-right: 15px;
}
.more-link a{
	background: #222;
	color: #fff;
	padding: .2em .5em .2em 1em;
	text-align: center;
	text-decoration: none;
}
.more-link a:hover{
	background: #2a6398;
}

htmlコード

<p class="more-link"><a href="<?php the_permalink() ?>">Read more <i class="fa fa-angle-double-right" aria-hidden="true"></i></a></p>

フォントアイコンなどと組み合わせると見た目も綺麗になります。