本文主要內容:
解決Discuz主題瀏覽量不發生變化或跟這回复帖子的數量一起變化
#如果你是新手discuz開發人員可以從頭查看文章
如果你是一個站長直接看文章底部總結即可
更多文章盡在專欄:Discuz專欄
這這頁面為主題頁
上面紅框為主題的瀏覽量使用的是$_G[forum_thread][views]
以下全部回復為回帖數量使用的是$_G[forum_thread][replies]
然而我們刷新頁面時瀏覽量並不會增加,但是我們在主題回復一個帖子時瀏覽量就會增加
那我們在測試一下,新增一個回帖,會發現確實如此哈!但問題沒那麼簡單,請繼續看下文
第一步:我們需要確認瀏覽量跟回帖量是不是這兩個字段
第二步:我們需要追溯瀏覽量增加的原理
那麼下來咱們來排查第一個問題:打開資料庫字典查看pre_forum_thread 表,那麼我們就確定了我們在原始碼裡使用的變數是正確的
##追溯瀏覽量實現的原理在程式碼的986行,我們就解決了我們的第一個問題,那就是為什麼瀏覽量跟回帖量的資料是一樣的,這是因為在這裡做了一個判斷。如果回覆貼的數量大於主題瀏覽量時,會讓瀏覽量跟回帖量相等
#然後繼續找更新主題瀏覽量的程式碼:在1054行裡有viewthread_updateviews這個方法,根據字面意思我們都能理解這個方法是乾嘛的,主題更新瀏覽量的。
這段程式碼執行的步驟
addviews這個的值
pre_forum_threadaddviews這個表格
addviews這個值大於100時就會清空此專題的瀏覽量,然後會把這個資料存到pre_forum_thread 主題表的views欄位
preventrefresh值是控制是否開啟優化主題瀏覽量的
只要根據咔咔這樣配置就可以了。 但是身為開發者來說對一個功能點的實作必須追溯源碼,只有這樣才可以不斷提升自己。以上是Discuz主題瀏覽量實現原理與不更新的解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!