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) . '…', ?>