kamenokoki.com

【116日目】日記を新しい順番に表示したい

Posted:  Last Update:

ここ数日ページごとのアクセスをカウントするPHPを書いていたのですが、今日は少し横道にそれて、日記の日付順を降順に表示したいと思います。作成したときから気になっていたのですが、やはり新しいものを先にしたい!

日記を降順に表示したい

昨日までの数日間、ページ毎のアクセスを解析するPHPを書いていましたが、今日は少し横道に逸れたいと思います。

今現在、日記のアーカイブページの日記表示が、日付の古いものから並んでいます。例えば、2020年12月のアーカイブは12月1日が先頭に来ているのですが、…これ、本来なら一番新しい物を上に表示すべきですよね?

日記を降順に表示したい

今日はこの作業をしてみたいと思います。

作業してみる

さっそく作業に入りましょう。テスト環境のテスト環境で、PHPを確認…。既にファイルを取得しているので、これを作成日時で降順に並べ替えます。

$files = glob("$mypath/$filefolder/$archive*.txt");
    foreach((array)$files as $value){
        $filepath[filemtime($value)][] = $value;
    }
krsort($filepath);

これで並べ替えは完了。さらに、書き出しの部分のPHPも書き換えます。今までただの配列だったものを連想配列に変えたので、[0]で読み込む配列を指定しました。変数だらけですが、コード紹介。

foreach($filepath as $filename){
    $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アソシエイトの申し込みをする ←完了!
  • ローカルで簡単に入力ができるようにフォームを作る
  • フォローアップ - より収益化に向いたサイト構造に変更する
記事をシェアする

亀の子に連絡

ランキング参加中!ぽちっとしてね

F2cランキングアイコン 人気ブログランキング ブログランキング・にほんブログ村へ

広告