6、当处于某分类时,针对搜索引擎隐藏帖子列表中大量重复的主题分类名称及其链接(SEO)。打开 forum/forumdisplay_list.htm 模板,将 $thread[typehtml] 替换为:
<!--{if !(IS_ROBOT && $_GET['typeid'])}-->$thread[typehtml]<!--{/if}-->
7、当处于主题分类时,主题列表翻页链接伪静态化。
打开 source/module/forum/forum_forumdisplay.php 文件,查找:
$multipage = multi($_G['forum_threadcount'], $_G['tpp'], $page, "forum.php?mod=forumdisplay&fid=$_G[fid]".$forumdisplayadd['page'].($multiadd ? '&'.implode('&', $multiadd) : '')."$multipage_archive", $_G['setting']['threadmaxpages']);
将其替换为:
if($_GET['typeid']) {
$url_typeid = $_GET['typeid'].'-';
}
if($_GET['filter'] == 'digest') {
$url_filter = 'd';
} elseif($_GET['filter'] == 'heat') {
$url_filter = 'h';
}
if($_GET['filter'] && $_GET['filter'] != 'typeid') {
if($_GET['orderby'] == 'dateline') {
$url_orderby = 'n';
} elseif($_GET['orderby'] == 'lastpost') {
$url_orderby = 'l';
} elseif($_GET['orderby'] == 'replies') {
$url_orderby = 'r';
} elseif($_GET['orderby'] == 'views') {
$url_orderby = 'v';
}
}
$multipage = multi_forum($_G['forum_threadcount'], $_G['tpp'], $page, "forum-$_G[fid]-".$url_typeid.$url_filter.$url_orderby, $_G['setting']['threadmaxpages']);
打开 source/function/function_core 文件,
在 function simplepage($num, $perpage, $curpage, $mpurl) { 前面增加一段(定义multi_forum):
function multi_forum($num, $perpage, $curpage, $mpurl, $maxpages = 0, $page = 10, $autogoto = FALSE, $simple = FALSE, $jsfunc = FALSE) {
return $num > $perpage ? helper_page_forum::multi($num, $perpage, $curpage, $mpurl, $maxpages, $page, $autogoto, $simple, $jsfunc) : '';
}
进入 source/class/helper/ 目录,将 helper_page.php 复制一份命名为 helper_page_forum.php 。并依次修改 helper_page_forum.php 文件中的以下部分:
将 helper_page 修改为 helper_page_forum (共两处,其中文件头注释中的那处无关紧要);
将 $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'; (翻页页码链接静态化)。
若您喜欢这篇文章,欢迎订阅老张小站以获得最新内容。 / 欢迎交流探讨,请发电子邮件至 mail[at]vdazhang.com 。
/2015-06-20 22:36你好,请问主题分类的伪静态怎么写,你在文中并未给出,谢谢!
/2015-06-21 08:14写了啊,你仔细看看。
/2015-06-21 10:52嗯看到了,现在卡到了翻页伪静态上,很苦恼,按照你的教程总是列表页面空白,感觉是multi_forum定义没有生效的样子
/2015-06-21 12:11你是3.1版本吗?我没有在其它版本中测试过,在3.1中是没有问题的,你注意核对下,特别是下划线部分,末尾分号不要复制掉了。3.2版本应该差别不大。
/2015-06-21 14:27嗯,是3.1。我没有完全按照你说的改,因为我不太需要精华、热门等的伪静态,所以在第七步中的 if 函数内容有删减,不知道是否是因为这个?
/2015-06-22 01:37那你第7步 forum_forumdisplay.php 中直接替换成以下代码试试,加个判断。
if($_GET[‘typeid’]) {
$multipage = multi_forum($_G[‘forum_threadcount’], $_G[‘tpp’], $page, “forum-$_G[fid]-“.$_GET[‘typeid’].’-‘, $_G[‘setting’][‘threadmaxpages’]);
} else {
$multipage = //这里用原来默认的代码
}
/2015-06-22 01:40注意以上回复中的单引号/双引号被自动替换成 中文单引号/双引号了 ,你自己批量替换一下。