「WordPress」文字数を制限してエントリーを投稿する方法+PHPの書き方

以下はエントリー一覧など、一定数の文字数の範囲で投稿を出力したいときなどに使える方法です。

<?php echo mb_substr(strip_tags($post-> post_content),0,200) ; ?>

これで投稿内容のうち、200文字までが表示されます。

では、なぜこれで文字数制限ができるのでしょうか?
気になったので調べて見ます。

関数と引数

まず、<?php ~ ?>の中身を見ていきます。

  • echo
  • mb_substr()
  • strip_tags()
  • $post-> post_content

の四つに分解してみます。echoを飛ばしてまず、mb_substr()から行きます。mb_substr()文字数を指定して文字列を取り出すphpの関数です。

続いて関数をよく見ると後ろに( )がついてます。その中にもいろいろと書かれていますね。ここには「引数」を記述します。引数とは

関数を実行するにあたり、「この情報を元に処理を行ってください」と、必要な情報(パラメータ)を関数に渡すための仕組み

です。文字数を制限して投稿した文章を取得するのには、三つの情報が必要です。

  • 投稿した文章
  • その投稿の何文字目から取り出すか
  • 何文字取り出すか

ですので引数を三つ渡します。この三つを( )の中に,で区切って入力します。

まず投稿した文章は$post-> post_contentで呼び出せるので、一番目の引数として使います。2番目の引数は”最初から”を意味する0を、3番目に200をいれます。組み立てると

mb_substr(strip_tags($post-> post_content),0,200);

となり、投稿文の0から200文字目までを取り出す指定ができます。strip_tags( )の説明が抜けてましたが、これは、

文字列からHTMLおよびPHPタグを取り除く

関数です。$post-> post_contentだけで投稿を取得した場合、投稿の中のhtmlのタグも取り出されます。タグが途切れて取得されるなどの不具合が起きる可能性があるので取り除くわけですね。

なのでstrip_tags( )の括弧に引数として入れて、htmlタグを取り除きます。そして最後の仕上げ、echoを使います。これは

取り出した文字列を表示させるための構文

です。取り出した文章は、echoを使うことによってブラウザに表示されます。これで完成です!

まとめ

このphp文は、

<?php echo mb_substr(strip_tags($post-> post_content),0,200) ; ?>

$post-> post_contentで取り出した投稿文から、strip_tags()でhtmlタグなどを取り除き、mb_substr()を使ってその投稿文の最初から200文字までを取り出し、echoを使ってブラウザに表示させる、という意味になります。

参考サイト

・WordPress文字数制限で記事を表示したい時 | UNIQUE-UNIQUE.net
・WordPress 覚書 文字出力時に制限と条件をかけて表示する | 3Bee.jp
・mb_substr:文字数を指定して文字列を取り出す
・Flash CS3入門 基本からActionScriptまで – 第7回 関数の便利な仕組み,「引数」と「戻り値」を理解する:ITpro
・strip_tags: 文字列から HTML および PHP タグを取り除く (String 関数) – PHPプロ!マニュアル
・文字列の出力(echo, print) – 文字列 – PHP入門

ありがとうございました!

コメントをどうぞ!