最近有不少網站管理員反映,使用織夢系統生成 tags.php 文件后,發現頁面排版錯亂,標簽之間間隔不一致,甚至會導致變形。這個問題其實與織夢系統自帶的 tags.php 代碼有關,而我們則需要對其進行優化。
第一步:修改樣式表
在織夢系統自帶的 tags.php 文件中,樣式表的布局方式是采用表格的形式,這種布局方式容易導致標簽之間的間隔錯亂,造成頁面排版不美觀,甚至會出現內容重疊的問題。我們可以采用 DIV+css 的布局方式,將樣式表的代碼修改如下:
.tagcloud { margin: 0; padding: 0; font-size: 14px; line-height: 24px; text-align: justify; } .tagcloud a { display: inline-block; margin: 0 5px 5px 0; padding: 4px 10px; background-color: #f2f2f2; border-radius: 3px; color: #666; text-decoration: none; -webkit-transition: color .2s linear, background-color .2s linear; transition: color .2s linear, background-color .2s linear; } .tagcloud a:hover { background-color: #3498db; color: #fff; }
第二步:修改 PHP 代碼
在 tags.php 文件中,用于顯示標簽的代碼如下:
立即學習“PHP免費學習筆記(深入)”;
$tagsql = "SELECT tag,counts FROM `#@__tagindex` WHERE tag!='' ORDER BY counts DESC"; $dsql->SetQuery($tagsql); $dsql->Execute();
這段代碼其實是從織夢系統的數據庫中讀取標簽信息,然后按照標簽的使用頻率進行排序,以便顯示。但是這段代碼中沒有對標簽之間的間距做出處理,導致頁面排版出現了問題。我們可以在代碼中加入一個變量 $i,用于記錄循環的次數,然后根據 $i 的值來調整標簽之間的間距,代碼如下:
$tagsql = "SELECT tag,counts FROM `#@__tagindex` WHERE tag!='' ORDER BY counts DESC"; $dsql->SetQuery($tagsql); $dsql->Execute(); $i = 1; while($row = $dsql->GetArray()) { $tagname = $row['tag']; $counts = $row['counts']; if($i == 1) { echo ""; }
修改后的代碼中,我們在循環開始時增加了一個 DIV 標簽,用于包裹整個標簽云,然后根據 $i 的值來控制每個標簽的樣式,包括寬度、高度、外邊距、內邊距等,從而實現了標簽之間的間隔調整。因為每一行最多顯示 10 個標簽,所以在 $i 為 10、20、30 …… 時,我們添加了一個 DIV 標簽來清除浮動。
第三步:優化 html 代碼
在修改 PHP 代碼之后,我們也需要對 HTML 代碼進行優化,以使頁面排版更加美觀。我們可以修改 tags.php 文件中的 HTML 代碼,將標簽云顯示在獨立的容器中,這樣可以有效控制標簽云的大小、位置和布局。代碼如下:
<div class="tagcloud-wrapper"> <h3>標簽云</h3> <?php // PHP 代碼 ?> </div>
這段代碼會將標簽云顯示在一個名為 tagcloud-wrapper 的 DIV 容器中,我們可以在樣式表中對該容器進行優化,以達到更佳的效果。
綜上所述,我們通過修改樣式表、PHP 代碼和 HTML 代碼,可以有效解決織夢系統中生成 tags.php 文件所導致的排版錯亂和樣式問題。改善后的標簽云不僅更加美觀,而且也更容易被搜索引擎索引,提高了網站的搜索引擎優化效果。