Store CPT 'Reviews' average ratings to a WordPress DB table or to a DB custom table?

I am working on this portal in which users can review the services (with description and rating) of a cultural place.BAS

I am working on this portal in which users can review the services (with description and rating) of a cultural place.

BASICALLY, I created two Custom Post Types (CPT) with Pods, one is cultural_places (CP) and the other is reviews (RW).

THEN in the archive pages, I sort the CPs by their services RWs average ratings.

BUT for this, I have two loops: RWs inside CPs. Every RWs loop confronts the related ID field with CP's, sum all RWs ratings in a variable, before the end of CPs loop I store the obtained average rating in an array with CP ID and RWs count. Then outside of the loops, I create a for loop where I sort the array by the column of the average rating. Finally, I do another for loop with the sorted array where I print the CPs with their services average rating.

Example, best shown in Update 1 of Sort custom post type by other custom post type field. (Places by their reviews mean vote):

CP while{
        RW while{
                If(RW related field == CP_ID){
                                             Sum ratings
                                             Count RWs
                                             }
                }
        Calculate average_rating = RWs ratings sum / RWs count
        Store CP_ID in new_array[0]
        Store average_rating in new_array[1]
        Store RW_count new_array[2]
        }
usort array by average_rating column new_array[1]
for{
   print sorted new_array
}

NOW, everything works fine and while I have little data (CPs and RWs) it doesn't take long but I can already notice a little delay in the page load. For obvious reasons.

SO, firstly, I wanted to know if there's a way to store that average rating directly as CPT meta or as a column in WP post table. And if not, how to store all this data in a custom table. Maybe even creating Advanced CPT that directly store it's data to a custom table? But still, the average rating calculations would be left off. Or there's also a way to make those calculations DB automatised? Maybe using a template part?

The point, of course, is to lighten the page workload.

Thanks a lot for anyone who can help!

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745353212a4623961.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信