最近有不少网站管理员反映,使用织梦系统生成 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 文件中,用于显示标签的代码如下:
$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 ""; } echo ""; if($i % 10 == 0) { echo ""; } $i ; if($i > 100) { break; } } if($i > 1) { echo ""; }
修改后的代码中,我们在循环开始时增加了一个 div 标签,用于包裹整个标签云,然后根据 $i 的值来控制每个标签的样式,包括宽度、高度、外边距、内边距等,从而实现了标签之间的间隔调整。因为每一行最多显示 10 个标签,所以在 $i 为 10、20、30 …… 时,我们添加了一个 div 标签来清除浮动。
第三步:优化 html 代码
在修改 php 代码之后,我们也需要对 html 代码进行优化,以使页面排版更加美观。我们可以修改 tags.php 文件中的 html 代码,将标签云显示在独立的容器中,这样可以有效控制标签云的大小、位置和布局。代码如下:
标签云
这段代码会将标签云显示在一个名为 tagcloud-wrapper 的 div 容器中,我们可以在样式表中对该容器进行优化,以达到更佳的效果。
综上所述,我们通过修改样式表、php 代码和 html 代码,可以有效解决织梦系统中生成 tags.php 文件所导致的排版错乱和样式问题。改善后的标签云不仅更加美观,而且也更容易被搜索引擎索引,提高了网站的搜索引擎优化效果。