每当用户访问帖子时,我都会使用一个简单的触发功能,只需将+1添加到该帖子的单个自定义字段访问计数器字段中。
这意味着我可以使用new WP_Query()
使用元值进行排序,轻松获取有史以来访问次数最多的帖子,但我不能为我的生活找到一个只获得最多的好方法访问过去X天的帖子。
由于我只是将每个帖子的自定义字段增加1,我明白没有提及日期或任何内容,但我无法想象一个好的编码解决方案来实现这一点。
是否有WordPress方法来确定自定义字段在过去7天内的更改次数?
答案 0 :(得分:4)
解决方案是每天有一个计数器。
假设您今天有一个柜台 - 让我们称之为09052016
,明天另一个称为10052016
。然后,为了获得过去7天的观看次数,您只需花费最近7天的时间。计数并将它们加在一起。
更简单的解决方案可能是逐步命名,因此您有000001
,000002
,000003
等等。
这样可以更容易编写一个允许你拿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