WordPress <–!more–> を使った「続きを読む」をカスタマイズする方法

前回、自動的に記事を全文表示から抜粋表示にする方法を紹介したので、今回は<–!more–>を使った「続きを読む」のカスタマイズ方法を紹介しようと思います。

前回同様、『Twenty Eleven 1.2』に合わせて説明します。
『Twenty Eleven 1.2』は<–!more–>を入力すると「続きを読む」と表示するので、「続きを読む」以外のテキストが表示されるテーマを使用している方は、使用しているテーマに置き換えてお考えください。
また、WordPressバージョン 2.7.1以下を使用している方はここをご覧下さい。

▼『続きを読む』のリンク先を記事の先頭に変更する方法

『続きを読む』のリンク先は、<–!more–>を入力した場所になっています。それなので、記事の途中から表示されてしまいます。
記事の初めから表示したい場合は、使用しているテーマのディレクトリ内にある『functions.php』に以下のコードを追加します。

// <!--more-->のリンク先をページの先頭に移動に変更するコード
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_content』タグを以下のように書き換えます。
色々な場所に書かれていますので、Devasを使用して探すと楽だと思います。

// 『続きを読む』を『もっと読む?』に変更する方法
<?php the_content( 'もっと読む?' ); ?>

『the_content』タグに好きなテキストを入力するだけで、入力したテキストが表示されるようになります。
(この方法だと、自動翻訳が適用されなくなります。適用されるようにする方法はまた今度ということで・・・)

また『the_content』タグには、HTMLタグやHTMLエンティティを書くこともできます。
それなので、画像を表示したり、CSSを適用したり、♥を表示したりすることができます。

// 『the_content』タグにHTMLタグやHTMLエンティティを書く
<?php the_content( '<span class="moreLink">もっと読む?&hearts;</span>' ); ?>

『the title』タグを使用すると、記事のタイトルを表示することだってできます。

// 『the_content』タグに『the title』タグを使用する
<?php the_content( '' . the_title('', '', false) . 'をもっと読む?' ); ?>

▼記事ごとに『続きを読む』を好きなテキストに変更する方法

上で紹介した方法だと、全ての『続きを読む』にカスタマイズが適用されます。
今回の記事だけは『続きが気になる?』と表示したい場合などは、記事の中に書かれている『<–!more–>』を以下のように書き換えます。

// 今回の記事だけ『続きが気になる?』に変更する方法
<--!more 続きが気になる?-->

『<–!more–>』のmoreのあとに好きなテキストを入力するだけで、記事ごとに好きなテキストを表示することができます。


以上が『<–!more–> を使った「続きを読む」をカスタマイズする』方法です。

WordPressバージョン 2.7.1以下を使用している方や、もっと詳しく知りたい方は、WordPress 日本語ローカルサイト 「続きを読む」のカスタマイズをご覧下さい。