如何获得本周访问量最大的帖子?

时间:2016-05-09 12:41:18

标签: php wordpress

每当用户访问帖子时,我都会使用一个简单的触发功能,只需将+1添加到该帖子的单个自定义字段访问计数器字段中。

这意味着我可以使用new WP_Query()使用元值进行排序,轻松获取有史以来访问次数最多的帖子,但我不能为我的生活找到一个只获得最多的好方法访问过去X天的帖子。

由于我只是将每个帖子的自定义字段增加1,我明白没有提及日期或任何内容,但我无法想象一个好的编码解决方案来实现这一点。

是否有WordPress方法来确定自定义字段在过去7天内的更改次数?

2 个答案:

答案 0 :(得分:4)

解决方案是每天有一个计数器。

假设您今天有一个柜台 - 让我们称之为09052016,明天另一个称为10052016。然后,为了获得过去7天的观看次数,您只需花费最近7天的时间。计数并将它们加在一起。

更简单的解决方案可能是逐步命名,因此您有000001000002000003等等。

这样可以更容易编写一个允许你拿000182和前6个计数器的PHP函数。

通过计算值的值,也可以对过去7天内的热门帖子进行排名:

x + (x-1) + (x-2) + (x-3) + (x-4) + (x-5) + (x-6)

我不确定这是否是最有效的解决方案。

您还可以每天使用一个计数器和一个计数器,在1天后减去6天前的观看量。

答案 1 :(得分:4)

尝试这种方式..

  SELECT A.institution,
         A.acad_career,
         A.emplid,
         a.strm,
         NVL(
             SUM(
                 CASE
                     WHEN     A.repeat_candidate IN ('N', 'Y')
                          AND A.CRSE_GRADE_OFF != 'F' THEN
                         MAX(grade_points)
                     ELSE
                         (grade_points)
                 END
                ),
             0
            )
             AS GPA,
         NVL(SUM(CASE WHEN a.repeat_candidate = 'N' THEN A.UNT_TAKEN END), 0) AS TAKEN,
         a.acad_prog
    FROM ps_stdnt_enrl A, ps_STDNT_CLAS_D_VW B
   WHERE     A.emplid = B.emplid
         AND A.class_nbr = B.class_nbr
         AND A.strm = B.strm
         AND A.acad_career = B.acad_career
         AND a.STDNT_ENRL_STATUS = 'E'
         AND a.emplid LIKE '06381313011%'
GROUP BY a.emplid,
         a.acad_career,
         a.institution,
         a.acad_prog,
         A.strm