[WordPress] ワードプレスの 1 日の平均の後時間 (時間) を取得する方法?

スポンサーリンク

質問

私「文章の表示動作を”私のブログに page(template) を構築しようだった。時間私はほとんどすべての時間の 1 日の投稿を表示、私は”平均時間を計算後 (時間) 1 日の”、「ええと私は通常ポストのブログ朝は…」のようなことができる知っているのでする必要があります

最初のアイデア来て私の心には合計すべての「ランキング」一緒に、「総投稿数」によって分割し、表示する 24 時間形式に変換、私のコードは動作しませんでしただ。

書いたコアのコードは、このような:

<?php
$alltimes=$wpdb->get_var($wpdb->prepare("SELECT sum(post_date) FROM $wpdb->posts WHERE post_type = 'post'", $alltimes));
echo '<p>Total post count '.$published_posts.'</p>';
$count_posts = wp_count_posts(); $published_posts = $count_posts->publish;
$averagetime= $alltimes / $published_posts;
echo '<p>Average Time count is '.$averagetime.'</p>';
echo'<p>Average time is '.date('Y-m-d h:i:s',$averagetime).'</p>';
?>

を分割するとき、災害になるだろう私のミスは、年、月、日、時間、秒. すべて”$alltimes”を総括します

たぶん”post_date”で「時間」を得ることができるがなく、全体の”post_date”しかし、どのように、仕事を行いますか?

お時間をいただきありがとうございます

答え

あなたを考えるこのようなクエリを探しています。

HOUR()

を使用していると datetime 値から日付と時間の部分を抽出する

DATE()

:

SELECT HOUR(post_date) hour, COUNT(*) posts FROM wp_posts 
WHERE post_type = 'post' && DATE(post_date) = DATE(NOW()) 
GROUP BY hour
ORDER BY posts DESC;

一日の異なる時間の間になされたどのように多くの記事が表示されます:

+------+-------+
| hour | posts |
+------+-------+
|   18 |    15 |
|   19 |    12 |
|   21 |     2 |
+------+-------+

これが働くだろうあなただけの投稿の最大数と時間が含まれています一つ得る 1 つの行をご希望の場合:

SELECT hour, MAX(posts) posts FROM ( 
  SELECT HOUR(post_date) hour, COUNT(*) posts FROM wp_posts 
  WHERE post_type ='post' && DATE(post_date) = DATE(NOW()) 
  GROUP BY hour ORDER BY posts DESC 
) v;

またはこのような:

SELECT HOUR(post_date) hour, COUNT(*) posts FROM wp_posts 
WHERE post_type = 'post' && DATE(post_date) = DATE(NOW()) 
GROUP BY hour
ORDER BY posts DESC
LIMIT 1

参照 < br/> Mysql -

http://stackoverflow.com/questions/28512214/how-to-get-the-average-post-time-hour-of-day-in-wordpress

スポンサーリンク

Leave a Reply