※この記事は11年以上前の記事です。
現在は状況が異なる可能性がありますのでご注意ください。
さてさて、今日も、現場目線にこだわって書いていこうか。
珍しくWordPressです。
最近、仕事でWordPressやることが多い。
世の中、どうやらWPの方が流行っているらしい。
しかしまぁ、けっこう厄介者で、
カスタマイズはどこまでも自由にできるけど、
いかんせん、PHPベースだから、わからん人にはわからんというか・・・。
前置き長いですね。本題に入ります。
タイトルの通り、
投稿記事が、新規投稿なのか、更新したものなのかを判別する方法です。
やる方法すぐ見つかるかなと思ったら、
これが難しいらしくなかなか見つからなかった。
なぜかというと、調べるとすぐ出てくる方法は下記だが・・・。
<?php get_post_status( $ID ) ?>
これだと、投稿されているか、下書きか、くらいの判別しかできず、
新規投稿なのか、更新なのかの判別はできないからだ。
(新規記事も、更新した記事も、出てくる値は"publish")
他も調べると、データベースに直接アクセスして、値をとってくるなど、
にわかエンジニアの僕にはちんぷんかんぷんな方法しかでてこない。
そこで、僕が見つけた方法が下記である。
<?php $postDate = $post->post_date; $modiDate = $post->post_modified; if($postDate == $modiDate){ echo "new"; } else { echo "updated"; }
何をしているかというと、
新規投稿された日時と、その投稿が更新された日時を持ってきて、
双方を比べて、同じであれば、新規投稿、
違えば更新されている記事・・・、と判別させている。
そう、WordPressさんは、投稿が新規か投稿かを判別するのは、
めんどくさいが、新規投稿の日時と更新された日時はすぐ出せるのである。
普通、簡単さ逆じゃないの・・・?
というわけで、これ見つけるのに一日半かけてたのでした。
コメントする