【116日目】日記を新しい順番に表示したい
Posted: Last Update:
ここ数日ページごとのアクセスをカウントするPHPを書いていたのですが、今日は少し横道にそれて、日記の日付順を降順に表示したいと思います。作成したときから気になっていたのですが、やはり新しいものを先にしたい!
日記を降順に表示したい
昨日までの数日間、ページ毎のアクセスを解析するPHPを書いていましたが、今日は少し横道に逸れたいと思います。
今現在、日記のアーカイブページの日記表示が、日付の古いものから並んでいます。例えば、2020年12月のアーカイブは12月1日が先頭に来ているのですが、…これ、本来なら一番新しい物を上に表示すべきですよね?
今日はこの作業をしてみたいと思います。
作業してみる
さっそく作業に入りましょう。テスト環境のテスト環境で、PHPを確認…。既にファイルを取得しているので、これを作成日時で降順に並べ替えます。
foreach((array)$files as $value){
$filepath[filemtime($value)][] = $value;
}
krsort($filepath);
これで並べ替えは完了。さらに、書き出しの部分のPHPも書き換えます。今までただの配列だったものを連想配列に変えたので、[0]で読み込む配列を指定しました。変数だらけですが、コード紹介。
$filename = basename($filename[0]);
$filename = str_replace('.txt', '', $filename);
require("$mypath/$filefolder/$filename.txt");
echo '
<a href=', "$myurl/$urlfolder1/$filename", '>
<div id="latestchild">
<div id="latestcimg"><img src="',$articletimg,'" alt="',date('Y.m.d',strtotime($filename)),'記事のイメージ画像"></div>
<div id="latestctitle">
<b> ',$articletitle, '</b>
</div>
<div id="latestcdescription">',$articledescription, '</div>
<div id="indexlinktime">', date('Y.m.d',strtotime($filename)) ,'</div>
</div>
</a>';
}
完成!
本番環境に移植
無事にできたので、本番環境に持ってきました。これで完成!と思いきや、完成してなかった~っ!!
並べ替えが最終保存日になってしまった…。誤字脱字とかを訂正している日記が上に来てしまいました…。だめだ…。
時間切れ…
完成しないうちに時間切れになってしまいました!
仕方ないので、本番環境用のファイルはもとに戻して、今日は作業終了します…。
明日は日記の順番を変えるPHPを完成させて、またアクセス解析するPHPに戻りたいと思います。では、また明日!
おまけのロードマップ
サイト作成がどのくらい進んでいるかロードマップで進捗を確認すると、ここまで進んでいます。
- 準備 - サイトの全体像を決める
- 使用するプログラミング言語を決めて環境を整える
- サイトの基本構造を作って公開する
- 収益化に最適なサイトにアップグレードする
- GoogleアドセンスとAmazonアソシエイトの申し込みをする ←完了!
- ローカルで簡単に入力ができるようにフォームを作る
- フォローアップ - より収益化に向いたサイト構造に変更する
