指定した日の投稿した記事数を取得する
今回はあの日、何回記事を投稿したっけなぁという時に便利なsqlを紹介します。
まずは下記のコードをご覧ください。
SELECT count(*) FROM wp_posts WHERE post_date LIKE '2017-12-09%' AND post_status = 'publish' AND post_type = 'post'
上記のsqlを簡単に訳すと「wp_postsテーブルの投稿日時が2017年12月09日でかつ、公開済みの投稿記事を数えて選びます」になります。
count(*)
上記は「選んだ記事を数えて」返します。
前方一致で月別、日別で記事を取得する
WHERE post_date LIKE '2017-12-09%'
上記は投稿日時で時間帯を%に置き換えて前方一致をしています。
上記を下記に変えると「2017年12月に投稿した記事」になります。
WHERE post_date LIKE '2017-12%'
日付の部分を消して12月のとなりに%を置くことで「12月中に投稿した記事」となります。
応用編:年と時間関係なしの月別、時間帯別の記事を取得する
WHERE post_date LIKE '%12%'
上記のようにすると「12月に投稿した記事」となります。もちろん年、日、時間は関係なく12月に投稿したものです。
2000年の12月であろうが2017年の投稿であろうが関係ありません。
時間帯で検索したい場合は
WHERE post_date LIKE '2017-12-09 19%'
「2017年12月09日の19時に投稿した記事」となります。
補足:公開済みと投稿記事の指定の仕方
AND post_status = 'publish'
これは「公開済み」の記事になります。
privateにすると「非公開」になります。
AND post_type = 'post'
これは「投稿記事」になります。
pageにすると「固定ページ」になります。