WordPressでアーカイブページに抜粋を載せるのによく使うthe_excerpt()というテーマ関数があります。the_excerpt()は、なにも加工せずにつかうと文字数が少なかったり区切りがなくて味気ない感じの抜粋になります。ただいくつかフィルターフックが用意されていてそれを使うと文字数を変更できたり区切り文字を追加したりすることができます。

the_excerpt()の文字数を変更する

the_excerpt()の文字数を変更するには以下のような関数をfunctions.phpに追加します。前提として「WP Multibyte Patch」プラグインが入っている状態になります。

function char_length(){
    return 200;
}
add_filter( 'excerpt_mblength', 'char_length' );

上のコードの場合、文字数は200文字に設定しています。200文字以外にしたい場合は、4行目の200を設定したい文字数に変えればOKです。

フィルターフック部分のadd_filterに’excerpt_length’でも文字数が変わったりしますが、excerpt_lengthは日本語などのマルチバイト文字には対応してないので文字数を変更したい場合は、excerpt_mblengthを使用することをおすすめします。

the_excerpt()の区切り文字を変更する

the_excerpt()の区切り文字を変更するには、以下の関数をfunctions.phpに追加します。

function replace_excerpt_more(){
    return '...';
}
add_filter( 'excerpt_more', 'replace_excerpt_more' );

上の関数は、4行目に「…」を返して区切り文字としています。「…」以外にしたい場合は、「…」の部分を変えるとOKです。ただthe_excerpt()はHTMLを無効化するのでリンクとはいれることはできません。リンクにしたい場合は、the_cotnent()を使って「<hr>」で区切るか、mb_substr()で文字数制限をしたあとthe_contentフィルターをつかってリンクを追加する必要があります。