前提・実現したいこと
Wordpressのpopularpostsというプラグインを使ってPV順のランキングを作ろうと考えています。
popular postsの標準機能として、PV数と期間を指定するfunctionはあるのですが、
「1ヶ月以内に公開された記事の中から、今日PV数が高い10件」が欲しく、標準機能では期間指定した合算(1ヶ月指定ならば1ヶ月合計)でのPVになってしまいます。
そこで、SQLを直接叩いて、上記条件になるものを書こうと思いましたが、SQLの知識が浅く
苦戦しています。
やりたいこととしては、
wp_popularpostsdataというテーブルに投稿日付と投稿IDが入っております。(day, postidカラム)
そこが今日から1ヶ月前までの記事レコードのIDをもとに、wp_popularpostssummaryというテーブルにpageviewカラムとpostidカラムがあるので、それを取得したいです。
SQLのイメージです。
Select pageviews, id from wp_popularpostssummary
where id IN (
SELECT DISTINCT *,id from wp_posts
WHERE post_date >= DATE_ADD(NOW(), INTERVAL -1 MONTH)
AND id IN (
Select DISTINCT postid from wp_popularpostssummary
)
);
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/20 06:49