WordPress(WP)

【WordPress】記事の抜粋機能を改良(文字数の変更など)

the_excerpt()関数について

記事本文の抜粋を表示させる場合には、
the_excerpt()
を使います。

基本的な使い方は、こんな感じですね。

<?php if(have_posts()): ?>
<?php while(have_posts()): the_post();?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?><a></h2>
<?php the_excerpt(); ?>


<?php endwhile; ?>
<?php endif; ?>

get_the_content()でいったん記事本文を取得してから、
PHPの関数で特定の文字数に丸めて出力してもいいのですが、
それだと面倒なんでthe_excerpt()を使った方が簡単です。

ただ、the_excerpt()で記事抜粋を出力する場合、
デフォルトでは以下の様な仕様になっています。
・出力される文字数は110文字
・末尾に「...」が付与される

これだと110文字と固定されており、末尾にも余計なものが付いていたりと、
不便なこともあります。

そこで、これらの設定を変更する方法を紹介します。

 

デフォルトの110文字を変更する方法

文字数の変更は、
functions.phpに以下のコードを追加するだけです。

function excerpt_length_alter($length){
return 200;
}
add_filter("excerpt_mblength", "excerpt_length_alter");

これにより、出力する文字数が200文字に変更されます。
※各サイトに合わせて、文字数を変更してください。

 

末尾の「...」を削除する方法

抜粋末尾の「...」を削除する方法も簡単です。

functions.phpに以下のコードを追加するだけです。

function excerpt_more_alter($more){
return "";
}
add_filter("excerpt_more", "excerpt_more_alter");

これで、「...」が表示されなくなります。

 

末尾の文字を「...」以外に変更する方法

末尾の文字を、例えば「続きを読む」に変更する場合には、
functions.phpに以下のコードを追加するだけです。

function excerpt_more_alter($more){
return " 続きを読む";
}
add_filter("excerpt_more", "excerpt_more_alter");

これでOKです!

 

PHP mb_strimwidth()関数を使った変更方法

以前、PHPのmb_strimwidth()関数を使って、
このような書き方をされている方もいました。

function the_excerpt_alter($ontent){
return mb_strimwidth($ontent, 0, 200, " 続きを読む", "UTF-8");
}
add_filter("the_excerpt", "the_excerpt_alter");

mb_strimwidth()関数は便利な関数ですし、これでも近いことは出来ますね。

ただ、PHPのmb_strimwidth()関数は使い方に注意して下さい。

全角文字は1文字で2文字分にカウントされます。
また、「 続きを読む」という文字列も含めて、200文字に丸められます。

その点も含めてコードを書く必要があります。

 

抜粋とは

最後に、「抜粋」について簡単に説明しておきます。

抜粋」とは、記事の概要のようなものです。

WordPressの投稿画面には「抜粋」という項目があるので、
そちらに入力したテキストが「抜粋」として扱われます。
WPの抜粋機能(要約)
※もし「抜粋」の項目が画面にない場合には、画面上の「表示オプション」から表示設定して下さい。

ただ、毎回「抜粋」を入力するのは面倒です。
恐らく、ほとんどの方が入力されていません。

その場合には、記事本文から指定の文字数だけテキストを抜粋してくるので、問題ないです。

この記事を書いている人
株式会社ディープ
名前足立拓也

メールアドレスadachi@deep-deep.jp

関連記事

最近の記事

  1. ドメインについて
  2. WP:WordPress(ワードプレス)
  3. URL設計(URLデザイン)
  4. URL「ディレクトリ名」と文字アンダースコア(_)とハイフン(-)
  5. SEO対策(外部ファイルの読み込み)
  6. URL リダイレクト
  7. インデックスされない
  8. 内部対策は必要?
  9. CMS(シーエムエス)
  10. SEO業者は必要?

Twitter

アーカイブ

PAGE TOP