WordPress の the_excerpt() で [...] を消す/変更する

2010-4-18 07:00
このエントリーをはてなブックマークに追加

WordPress の記事の抜粋を表示する API 関数が the_excerpt() です。本文の先頭から日本語の場合は先頭から110文字を取り出して表示するものですが、本文が長い部分には省略を表わす [...] という文字列が付いてきます。

この部分はリンクでもないし、変更も消去もできないので、あまり評判がよくないので、the_content() を使っていた方も多いと思います。

しかし、WordPress Codex 日本語版の説明によると、WordPress 2.9 以降では、’excerpt_more’ フィルターを使うことによりこの動作を変更できるようになったそうです。

#function.php
function new_excerpt_more($more) {
	return '';
}
add_filter('excerpt_more', 'new_excerpt_more');

テーマの function.php に上記のように書くと、[...] の部分が消えます。また、return の部分を変更すれば任意の文字列も返せますので、以下のようにすれば「続きを読む」のリンクを表示できます。

function new_excerpt_more($more) {
    global $post;
    return '……(<a href="' . get_permalink() . '">' . __('続きを読む') . '</a>)';
}
add_filter('excerpt_more', 'new_excerpt_more');

ただしリンクが出力されないで欲しいところで表示されるなど、テーマによっては想定外の動作をするかもしれません。

WordPress 2.8 以前では、’wp_trim_excerpt’ フィルターで同様のことができるようです。Codex の記事を参照してください。

2件のコメント

  1. (thumbnail)

    [...]がずっと気持ち悪かったので、(続きを読む)に変更することができてすっきりしました。ありがとうございました。

    コメント by asazuki2010-06-8 23:03

  2. (thumbnail)

    いつもお世話になっています。
    asazukiさん同様、とっても気持ち悪かったのが
    すっきりしました♪

    ほんとに、ありがとうございます!
    これからもお世話になります。

    コメント by ねこもりや2010-06-26 11:32

現在、コメントフォームは閉鎖中です。

48 queries. HTML convert time: 0.518 sec. Powered by WordPress. XHTML 準拠
Copyright © 2003-2011 @ futuremix.org | 5jp.net ログイン