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 の記事を参照してください。

  • ブックマーク : アクセス: 21,197回
  • カテゴリー : WordPress
  • キーワード :

2 Comments

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

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

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

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

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

Sorry, the comment form is closed at this time.

36 queries. HTML convert time: 0.069 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン