wordpressで新着情報一覧をカスタマイズしたときのメモ

電脳備忘録

本記事のソースコードの利用によって生じた損害について、当方は一切の責任を負いません。ご自身の判断と責任のもとで参照・ご利用ください。

この記事は最終更新から3年以上経過しています。

久しぶりにwordpressをいじったので忘れないうちに備忘録に残しておこうと思います。

新着一覧を実装したのですが、今回の仕様はこんな感じ。

  • 最新記事の記事を降順で5件表示。
  • 概要なのでテキストのみを表示させる。画像は表示させない。
  • 100文字以上のときは末尾に"..."を付けてそれ以上表示させない。

上記の仕様を満たすには「strip_tags」と「mb_substr」関数を使えばよさそうです。

この関数は、指定した文字列 (str) から全ての NUL バイトと HTML および PHP タグを取り除きます。 この関数は、 fgetss() 関数と同じタグ除去アルゴリズムを使用します。

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

この関数は、指定した文字列 (str) から全ての NUL バイトと HTML および PHP タグを取り除きます。

mb_substr - 文字列の一部を得る

strip_tags関数を使用し、エントリー本文からHTMLタグを取り除いてテキストのみを抽出した後pタグで囲って表示しています。
で、こんな感じのコードを書くと...

<ul class="list">
  <?php $posts = get_posts('numberposts=5&order=desc'); ?>
  <?php foreach($posts as $post): ?>
  <li>
  <a href="<?php the_permalink(); ?>">
  <article>
  <h1><?php the_time('Y.n.j') ?> | <?php the_title(); ?></h1>
  <?php
  $text = strip_tags($post->post_content);
  if(mb_strlen($text)>100) {
  $content= mb_substr($text,0,100) ; echo '<p>' .$content. '...</p>' ;
  } else {
  echo '<p>' .$text. '</p>' ;
  }
  ?>
  </article>
  </a>
  </li>
  <?php endforeach; ?>
  <!-- /.list --></ul>


結果こんなコードが生成されるわけです。

<ul class="list">
<li>
<a href="エントリーURL">
<article>
<h1>2013.5.1(公開日) | エントリータイトル</h1>
<p>
エントリー概要(100文字)
</p>
</article>
</a>
</li>
・
・
・
<!-- /.list --></ul>

仕様は満たしているので、たぶんこんな感じでいいんじゃないかしら?

0%