WordPressの「WP Multibyte Patch」というプラグインを使用して、投稿記事の抜粋文を表示させる方法について紹介します。

the_exerpt()

日本語環境の場合は、WP Multibyte Patchプラグインを有効化して、抜粋の最大文字数を正しく取得できるようにしてあげましょう。

このプラグインを使用すると、デフォルトで110文字までを抜粋文として出力できます。

<?php the_exerpt() ?>

抜粋する文字数を変更する

抜粋する文字数を変更したい場合は、「functions.php」に以下のように記述します。

function change_excerpt_mblength($length) {
  return 50; // 抜粋したい文字数を設定
}
add_filter('excerpt_mblength', 'change_excerpt_mblength');

抜粋文の末尾を変更する

デフォルトでは抜粋された文章の末尾に[…]という省略記号が入るようになっています。この省略記号を「続きを読む」に変更する場合はfunctions.phpに以下のように記述します。

function change_excerpt_more($more) {
  return '続きを読む';
}
add_filter('excerpt_more', 'change_excerpt_more');

リンクを追加したい場合は、以下のように変更します。

function change_excerpt_more($more) {
  return '<a href="'. get_permalink($post->ID) . '">' . '続きを読む' . '';
}
add_filter('excerpt_more', 'change_excerpt_more');

カスタム投稿を抜粋させる方法

カスタム投稿を使用している場合は、少し記述の仕方が変わってきます。

get_post_meta($post_id, $key, $single)でカスタムフィールド値を取得しています。$post_idはカスタムフィールドを取得したい投稿のIDで、$keyは取得したいカスタムフィールドの名前(キー)の文字列(ここではexampleとしています。)を、$singleをtrueにして、1つの値(複数ある場合は最初の値)だけを取得するようにしています。

<?php echo mb_substr(get_post_meta(get_the_ID(),'example', true), 0, 50) . '…', ?>