WordPressの自動抜粋の文字数とリンク文字の変更

ヘッダ画像

WordPressの自動抜粋の文字数とリンク文字の変更

WordPressではthe_excerpt()関数を使うと記事の抜粋表示ができます。
トップページやカテゴリージページなどで全文表示されていれば、テンプレート上のthe_content()をthe_excerpt()に変更すれば抜粋表示にできます。

今回は抜粋の文字数や文末の表示などの表示をカスタマイズします。

WordPressの抜粋をカスタマイズ

デフォルトの状態
この抜粋の文字数はデフォルトで110文字に制限されていますが、2バイトの日本語では実質55文字となります。
抜粋のイメージは以下のようになります。

WordPress Codex は、ウェブログシステム WordPress の公式オンラインマニュアル(ドキュ […]

WP Multibyte Patchを有効にする
日本語の場合はWordPresのインストール時に同梱される「WP Multibyte Patch」を利用するとよいでしょう。このプラグインは日本語環境でメール送信・トラックバック受信・ピンバック受信やexcerpt関数・検索などをうまく処理できるように修正してくれます。
この場合も抜粋に関してはデフォルトで110文字となりますが、2バイト対応ですので、同じ条件でも下記のように抜粋のされ方は異なります。

WordPress Codex は、ウェブログシステム WordPress の公式オンラインマニュアル(ドキュメント)であり、WordPress 知識の百科事典を目指しています。 進化し続ける WordPress に合わ […]

抜粋の文字数を指定する

WP Multibyte Patchで指定する
抜粋の文字数を任意の値とするためには「WP Multibyte Patch」で指定します。
プラグイン編集→wp-multibyte-patch/wp-multibyte-patch.phpより下記のexcerpt_mblengthの値を任意の文字数に変更します。(ファイル内をexcerpt_mblengthで検索するとすぐに見つかります)

// Do not edit this section. Use wpmp-config.php instead.
var $conf = array(
'excerpt_mblength' => 110,

function.phpで指定する
ただし、上記のプラグインを修正する方法ではアップデートの際などにデフォルトに戻ってしまいます。
これを防ぐにはお使いのテーマのfunction.phpに以下を追加します。
return 400の部分が文字数指定値です。

<?php //WP Multibyte Patchの文字数指定
function new_excerpt_mblength($length) {
return 400;
}
add_filter('excerpt_mblength', 'new_excerpt_mblength');
?>

※テーマ内で指定することでプラグインのアップデートの際にも対応できますので、こちらの方がおすすめです。

抜粋の文末を変更する

同じく、function.phpにてWP Multibyte Patchをコントロールして抜粋文未を変更するバリエーションを紹介します。

抜粋末を「…」から「・・・」に変更

抜粋末を【続きを読む】のリンクに変更

<?php //抜粋の文末変更パターン1
function new_excerpt_more($more) {
return '・・・';
}
add_filter('excerpt_more', 'new_excerpt_more');
?>

上記の組み合わせ(・・・【続きを読む】でリンク)

<?php //抜粋の文末を・・・【続きを読む】でリンク
function new_excerpt_more($post) {
return '・・・'. '<a href="'. get_permalink($post->ID) . '">' . '【続きを読む】' . '</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');
?>

モバイルとPCで抜粋の表示数を変える

最後にモバイルを判定するwp_is_mobile()という関数でthe_excerpt()で出力する抜粋の文字数を変えてみます。

<?php
//モバイルとPCでWP Multibyte Patchの文字数を個別に指定
function new_excerpt_mblength($length) {
return ( wp_is_mobile() ) ? 50 : 500;
}
add_filter('excerpt_mblength', 'new_excerpt_mblength');
?>

上記はモバイルでは50文字、PCでは500文字という指定になります。
これは表示エリアの小さいモバイルでは抜粋の文字数を減らしたい、しかし、それではPCで間が抜けてしまうなんていう場合に使える小ネタかもしれませんね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

WordPressのログインユーザー名は丸見え!?

WordPressのセキュリティ対策で必ずいわれるのが、ユーザー名を「admin以外に変更しよう」で […]

Contact Form 7の送信完了画面がでない

お手軽にお問い合わせフォームなどを設置できるContact Form 7 添付ファイルも送信でき、シ […]

3分で設置できる!?CSS3の角丸グラデーションボタン

CSS3と対応ブラウザの登場により、角丸やグラデーションを使ったリンクやフォームの送信ボタンが画像な […]

超簡単!アイコンフォント Font Awesomeの使い方

ひと昔前なら画像で表現していたようなアイコン。 ウェブフォントの登場によって、描画速度が速く手軽に挿 […]