這個問題我原來以為是沒有的,但后來經過測試發現在PHPCMS2008各個版本中都存在,當然此問題僅當內容頁URL為動態時才會發現,如果為靜態生成的話則不會有此問題.
我先大體說一下這個[page]出問題的情景:
比如以下為兩份內容的源代碼
內容A:解決PHPCMS2008內容頁分頁[page]解決PHPCMS2008內容頁分頁[page]解決PHPCMS2008內容頁分頁
內容B:[page]解決PHPCMS2008內容頁分頁[page]解決PHPCMS2008內容頁分頁[page]解決PHPCMS2008內容頁分頁
大家認真看內容A和內容B,其實他們在URL動態打開時的分頁總數是一樣(分頁數量沒有錯誤),但是在內容分頁第1頁顯示的內容就不一樣了,內容A是可以正常顯示第1頁的;而內容B的第1頁則顯示為空白,到第2頁才顯示第1頁的內容.這就是今天要解決的問題(注:經測試,此問題在靜態生成時不存在).
現在我們仔細觀察上面內容A和內容B的不同之處,發現內容B中[page]有3個,而且第1個是在具體內容的前面,問題就在這里.
按照官方程序的設計來說,正確的分頁代碼插入應該是:內容[page]內容[page]內容.所以大家要熟記這個分頁插入規則,不要把[page]放到具體內容的前面.
那有沒有辦法,兼容這兩種情況呢.當然可以.只要對show.php這個文件進行些許修改即可.以下winliuxq(http://www.liuxq.cn)就向大家提供兼容解決方案:
打開根目錄的show.php
1.找到"$contents = array_filter(explode('[page]', $content));",在其下面添加兩行: $cont_p=str_cut($content,'7','');//提取內容代碼中前7個字符 $cont_pn=substr_count($cont_p, "[page]");//判斷前7個字符中是否存在[page]這串代碼 2.將"$content = $contents[$page-1];"修改為以下代碼: if(!$cont_pn) { $content = $contents[$page-1]; } else { $content = $contents[$page-0]; } |
好了,問題得到解決了