どちらも本文の抜粋を表示してくれるので似ているようですが、似ていない「続きを読む」(moreタグ)とthe_excerpt()について、違いやちょっとした事だけど設定しておきたい事などを備忘も兼ねてまとめておきます。
「続きを読む」(moreタグ)のおもな特徴
- 投稿時に設定する。
- 好きな場所に設定できる。
- メインブログページやアーカイブページなど投稿がリスト形式で表示されるページで、moreタグまでが表示される。
- 個別投稿ページでは、moreタグは無視され、全文表示される
- 「続きを読む」等のリンクの表示、非表示の設定ができる。
- 画像を含む事ができる
- 「続きを読む」のリンクをクリックすると、moreタグの続きの部分に遷移する
the_excerpt()のおもな特徴
- 投稿画面の抜粋に入力した文章、無い場合は最初の55文字(日本語の場合は110文字(WP Multibyte Patchプラグインを使用の場合))までを表示する。(表示文字数は変更可能)
- 抜粋の最後に[…]を表示する。([…]は、変更可能)
- 続きへのリンクは表示されない
- 最初の55文字を表示する場合、HTMLタグと画像は取り除かれる
こんなところでしょうか?違いを知らずに使用すると思わぬ挙動になったりしますのでご注意が必要ですね。
moreタグの設定色々
「続きを読む」等のリンクを取り除く
該当のテンプレートファイルのthe_content();を以下のように修正します。
<?php the_content('',FALSE,''); ?>
「続きを読む」等の文言を変更する
該当のテンプレートファイルのthe_content();部分を以下のように修正します。
<?php the_content('つづく!'); ?>
「続きを読む」リンクをクリックした時、個別投稿ページの先頭へ遷移するようにする
通常ですと、「続きを読む」リンクをくりっくすると、個別投稿ページのmoreタグ以降の記事の続き部分に移動します。これを、記事の続きではなく、記事の先頭に遷移するように設定します。
functions.php に以下のコードを書いてください。
function remove_more_jump_link($link) { $offset = strpos($link, '#more-'); if ($offset) { $end = strpos($link, '"',$offset); } if ($end) { $link = substr_replace($link, '', $offset, $end-$offset); } return $link; } add_filter('the_content_more_link', 'remove_more_jump_link');
the_excerpt()の設定色々
抜粋の文字数を変更する
抜粋の場合、デフォルトでは最初から55文字(日本語の場合は110文字)が表示されますが、この文字数を変える事ができます。
functions.php に以下のコードを書いてください。
function custom_excerpt_length( $length ) { return お好きな文字数; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
抜粋の最後の[…]を変更または、削除する
デフォルトでは[…]が表示されますが、変更したり削除する事ができます。
functions.php に以下のコードを書いてください。
function new_excerpt_more($more) { return 'ららら'; } add_filter('excerpt_more', 'new_excerpt_more');
上記のらららの部分に好きな文字を入れたり、削除してください。