【WordPress】「Custom Field Suite」のループを入力した日付順に表示する方法(昇順・降順)


Warning: preg_match(): Unknown modifier '.' in /home/y-saito406/yuri-lifestyle.com/public_html/wp-includes/class-wp-embed.php on line 156
Pocket

WordPressで繰り返しフィールドを無料で作ることが出来る「Contact Field Suite」。
その「Custom Field Suite」のループを出力する順番を、最近入力したものを上に表示させるパターンに遭遇したのでまとめました。

通常のループの出力方法はこちら:

<?php $fields = CFS()->get( 'test_loop' ); ?>
<?php if ($fields) ://test_loop が存在するとき ?>
<?php foreach ( $fields as $field ):?>
<div>
  <p><?php echo $field['test_loop_text']</p>
</div>
<?php endforeach; ?>
<?php else : //test_loop が存在しないとき ?>
<p>表示する内容は現在ありません。</p>
<?php endif; ?>

これだと昇順に出力されて、最初に入力したものが一番上に表示されます。

ループは、よく会社のホームページの沿革などで使われ、その場合は昇順で問題なかったのですが、先日「お知らせ」的なものをこのパターンで表示することになり、後から追加した最近の出来事を一番上に表示したい・・となりました。

最後に追加した、最近入力したものから順に出力する、降順に出力するには、下記の方法で出力できます!

<?php $fields = CFS()->get( 'test_loop' ); ?>
<?php if ($fields) ://test_loop が存在するとき ?>
<?php foreach ( array_reverse($fields) as $field ):?>
<div>
  <p><?php echo $field['test_loop_text']</p>
</div>
<?php endforeach; ?>
<?php else : //test_loop が存在しないとき ?>
<p>表示する内容は現在ありません。</p>
<?php endif; ?>

変更した箇所は、
「 foreach ( $fields as $field ) 」部分を、「 array_reverse($fields) as $field ) 」と変更した部分です。

array_reverse() 」で、降順に表示できます。

※「Contact Field Suite」の使い方は以前に記載したのですが、内容がわかりにくいので、また書き直します・・。以前まとめた内容はこちらです。

【WordPress】カスタム投稿タイプ-追加から表示までの一連の流れ-

この記事が気に入ったら
いいね ! しよう

Twitter で

この記事へのコメント

  1. はじめまして!
    Custom Field Suiteの使い方を勉強しており、こちらのサイトに辿り着きました。
    現在、ループを出力する順番を、各ループに日付フォーマットを使用して入力した「日付」でソートする方法を探しており、つまづいています。
    お忙しいところ恐縮ですが、方法がございましたら、教授いただけないでしょうか?
    どうぞよろしくお願いいたします。

      1. ありがとうございます!
        教えていただいた参考ページでは、勉強不足で実現できなかったのですが、「array_multisort」で実現できました。「array_reverse」がヒントになりました。
        お忙しいところどうもありがとうございました!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です