2014/08/21
the_content()の文字数をmoreタグまでで指定する

wordpressのアーカイブページに取得する記事の本文の抜粋を自分の思った通りの場所に設定します。デフォルトだと何文字かの設定があるのでとても中途半端な文字数でしか取得する事ができません。そこでthe_content()を使って指定する方法を紹介します。
目次
moreタグまでの記事を出力する
the_excerptを使う方法もありますが今回はthe_content()を使っての記事の抜粋の方法です。
foot-plusブログのアーカイブページでもこの方法で記事の抜粋を取得しています。
コードは以下になります。
通常の記事取得方法
<?php the_content(); ?>
moreより前の文字を取得するコード
<?php $more = false; the_content('続きを読む'); $more = true; ?>
このコードをアーカイブのループ内に入れるとmoreまでの文字を取得することができます。
moreタグは使いだしたらかなり便利なので僕はこれ無しでは生きていけません。
ちなみにthe_content()の括弧内には「続きを読む」や「more read」等の文字を入れることによりリンクの文字を出す事も可能です。
また、括弧内にはhtmlタグを入れる事も可能です。
続きを読むボタンのリンク先の設定
これで晴れて文字数を設定する事ができたのですが、続きを読むボタンからリンク先へ飛ぶとページのトップがmoreタグの位置から開始する形になります。
それがイヤで続きを読むから飛んでいっても必ずページの先頭から表示させたい!そんな欲張りなあなたはfunctions.phpに以下のコードを追加してください。
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');
これでアーカイブを確認してみてください。