老张小站

  1. 欢迎光临

    感谢访问老张的博客!

  • 1
9,772

Discuz! X3.1 “导读”页面优化(伪静态/title/作者nofollow/rss订阅)

分类 网站技术/村民张先生 发布于 2014-06-04 01:00
0

2014/07/29最后修改:第5项,title中增加页数,避免页面标题重复。

1、增加伪静态规则,以Nginx为例:rewrite ^([^\.]*)/latest-([a-z]+)-([0-9]+)\.html$ $1/forum.php?mod=guide&view=$2&page=$3 last; ,注意:必须放在 rewrite ^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3 last; 之前任一行,否则无法生效。修改后需要重载Nginx。

2、让“导读”页面上的 最新XX 、抢沙发 等(除“我的帖子”)标签的链接伪静态化。打开 forum/guide 模板文件,将 <ul id="thread_types" class="ttp bm cl"> 后面的5个li行替换为:

<li $currentview['hot']><a href="latest-hot-1.html">{lang guide_hot}</a></li>
<li $currentview['digest']><a href="latest-digest-1.html">{lang guide_digest}</a></li>
<li $currentview['new']><a href="latest-new-1.html">{lang guide_new}</a></li>
<li $currentview['newthread']><a href="latest-newthread-1.html">{lang guide_newthread}</a></li>
<li $currentview['sofa']><a href="latest-sofa-1.html">{lang guide_sofa}</a></li>

将 {lang title} 替换为: <div class="tf" style="padding-left:5px;">主题列表</div>

3、将底部翻页按钮前的“导读首页”改为“最新热门”,并将其链接伪静态化。打开 forum/guide 模板文件,将 <span class="pgb y"><a href="forum.php?mod=guide">{lang guide_index}</a></span> 修改为 <span class="pgb y"><a href="latest-hot-1.html">最新热门</a></span>

4、将面包屑导航条中的“导读”改为站名,并使后面的链接伪静态化。

打开 forum/guide 模板文件,将 <a href="./" class="nvhm" title="{lang homepage}">$_G[setting][bbname]</a><!--{if helper_access::check_module('guide')}--><em>&raquo;</em><a href="forum.php?mod=guide&view=index">{lang guide}</a><!--{/if}--> 修改为 <a href="./" class="nvhm" title="{lang homepage}"></a><em>&raquo;</em><a href="./">$_G[setting][bbname]</a>

打开 source/module/forum/forum_guide 文件,将 <a href="forum.php?mod=guide&view='.$view.'"> 替换为 <a href="latest-'.$view.'-1.html">

5、删除title中的“导读-”。打开 source/module/forum/forum_guide 文件,将 $navtitle = $lang['guide'].'-'.$lang['guide_'.$view]; 替换为 $navtitle = $lang['guide_'.$view].$title_page; ,并在前面增加一行 if($_GET['page'] > 1) { $title_page = '(第'.$_GET['page'].'页)'; } 。

6、让“导读”页面上的翻页按钮静态化。

打开 source/module/forum/forum_guide 文件,将 $theurl = 'forum.php?mod=guide&view='.$view; 剪切到其后 if($view == 'my') { 里面的第一行,然后在 $data[$view] = get_guide_list($view, $start, $perpage); 前增加一行 $theurl = 'latest-'.$view; (此项操作的目的是使“我的帖子”页面的翻页功能不受影响)。接着将 $multipage = multi 修改为 $multipage = multi_guide (将翻页按钮由标准改为自定义)。

打开 source/function/function_core 文件,在 function simplepage($num, $perpage, $curpage, $mpurl) { 前面增加一段(定义multi_guide):

function multi_guide($num, $perpage, $curpage, $mpurl, $maxpages = 0, $page = 10, $autogoto = FALSE, $simple = FALSE, $jsfunc = FALSE) {
return $num > $perpage ? helper_page_guide::multi($num, $perpage, $curpage, $mpurl, $maxpages, $page, $autogoto, $simple, $jsfunc) : '';
}

进入 source/class/helper/ 目录,将 helper_page.php 复制一份命名为 helper_page_guide.php 。并依次修改 helper_page_guide.php 文件中的以下部分:

将 helper_page 修改为 helper_page_guide (共两处,其中文件头注释中的那处无关紧要);将 $pagevar = 'page='; 修改为 $pagevar = '-';

将 $jsurl = $mpurl.(strpos($mpurl, '{page}') !== false ? '\'.replace(\'{page}\', this.value == 1 ? \'\' : this.value)': $pagevar.'\'+this.value;').'; doane(event);'; 修改为 $jsurl = substr($mpurl, 0, -1).(strpos($mpurl, '{page}') !== false ? '\'.replace(\'{page}\', this.value == 1 ? \'\' : this.value)': $pagevar.'\'+this.value').'+\'.html\'; doane(event);'; (此项操作使手动输入页码翻页时链接静态化);

将 return $mpurl.$separator.$pagevar.$page; 修改为 return substr($mpurl, 0, -1).$separator.$pagevar.$page.'.html'; (翻页页码链接静态化)。

7、首页“最新回复”链接静态化。打开 forum/discuz 模板,将 forum.php?mod=guide&view=new 替换为 latest-new-1.html

8、将“我的帖子”标签链接加上nofollow,并且在未登录状态下不出现下拉菜单。

打开 forum/guide 模板文件,将 <a id="filter_special" href="forum.php?mod=guide&view=my" onmouseover="showMenu(this.id)"> 修改为 {if $_G['uid']}<a id="filter_special" href="forum.php?mod=guide&view=my" onmouseover="showMenu(this.id)">{else}<a href="forum.php?mod=guide&view=my" rel="nofollow">{/if} ;将 <!--{if !IS_ROBOT}--> 修改为 <!--{if $_G['uid']}-->

9、整理“导读”页面“rss订阅”的代码。打开 source/module/forum/forum_guide 文件,

将 "    <link>{$_G[siteurl]}forum.php?mod=guide&amp;view=$view</link>\n". 修改为 "    <link>{$_G[siteurl]}latest-$view-1.html</link>\n".

将 Copyright(C) {$_G[setting][bbname]} 替换为 Copyright (C) 建站年份-当前年份 网址

将 Discuz! Board by Comsenz Inc. 修改为 {$_G[setting][bbname]}

将 $filename = $_G['siteurl'].$_G['setting']['attachurl'].'forum/'.$attachfile; 替换为 $filename = $_G['setting']['attachurl'].'forum/'.$attachfile;

10、去掉最后回复时间及其作者的链接,给主帖作者链接加上nofollow。打开 forum/guide_list_row 模板,

将 <td class="num"><a href="forum.php?mod=viewthread&tid=$thread[tid]&extra=$extra" class="xi2">$thread[replies]</a><em><!--{if $thread['isgroup'] != 1}-->$thread[views]<!--{else}-->{$groupnames[$thread[tid]][views]}<!--{/if}--></em></td> 后面的 <td class="by"> 段替换为:

<td class="by">
<cite><!--{if $thread['lastposter']}-->$thread[lastposter]<!--{else}-->$_G[setting][anonymoustext]<!--{/if}--></cite>
<em>$thread[lastpost]</em>
</td>

将 <a href="home.php?mod=space&uid=$thread[authorid]" c="1"> 修改为 <a href="home.php?mod=space&uid=$thread[authorid]" rel="nofollow" target="_blank" c="1">

11、删除标题前面图标的链接。打开 forum/guide_list_row 模板,删除 <a href="forum.php?mod=viewthread&tid=$thread[icontid]&{if $_GET['archiveid']} 起至 {lang target_blank}" target="_blank"> 的整段代码,同时将随后最近一个 <!--{/if}--> 后面的 </a> 删除。

12、删除回复数的链接。同样是 forum/guide_list_row 模板,将 <a href="forum.php?mod=viewthread&tid=$thread[tid]&extra=$extra" class="xi2">$thread[replies]</a> 替换为 $thread[replies]

欢迎转载分享,转载请注明 来源:大张小站 https://www.zhang.cq.cn/2014268.html
若您喜欢这篇文章,欢迎订阅老张小站以获得最新内容。 / 欢迎交流探讨,请发电子邮件至 mail[at]vdazhang.com 。


欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截