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

Twitterはこちら >>

関連記事

最近の記事

  1. レンタルサーバ:おすすめの共用サーバ
  2. アフィリエイト
  3. VPSサーバー
  4. ブログのネタ探し
  5. プログラミング
  6. SSLとは
  7. 常時SSL通信設定後にやっておくべきこと
  8. 常時SSL通信設定方法
  9. htaccessとは
  10. WordPress

Twitter

ダッチ@職業ブロガー兼プログラマー
@gatsu0000

  • リモートやってみて分かったこと。 会社って意外と仕事に集中できていなかった。 当たり前か。会社って、別に落ち着ける空間じゃないですからね。
    about 2日 ago via Twitter Web App

アーカイブ

PAGE TOP