老张小站

  1. 欢迎光临

    感谢访问老张的博客!

  • 1
39,803

Discuz! X3.1 主题分类与排序功能伪静态解决方案

分类 网站技术/村民张先生 发布于 2014-07-31 10:46
7

3、取消已选中分类上的链接(SEO)(否则同一个关键词上会根据选中与未选中有两个不同链接)。同样打开 forum/forumdisplay.htm 模板,将以下整段代码:

<li class="xw1 a"><a href="forum.php?mod=forumdisplay&fid=$_G[fid]{if $_GET['sortid']}&filter=sortid&sortid=$_GET['sortid']{/if}{if $_GET['archiveid']}&archiveid={$_GET['archiveid']}{/if}"><!--{if $_G[forum][threadtypes][icons][$id] && $_G['forum']['threadtypes']['prefix'] == 2}--><img class="vm" src="$_G[forum][threadtypes][icons][$id]" alt="" /> <!--{/if}-->$name<!--{if $showthreadclasscount[typeid][$id]}--><span class="xg1 num">$showthreadclasscount[typeid][$id]</span><!--{/if}--></a></li>

替换为:

<li style="margin-right:5px; padding:4px 8px 3px; height:18px; font-weight:700; color:#369; float:left; border:1px solid #369; background:#eef5fa; white-space:nowrap;"><!--{if $_G[forum][threadtypes][icons][$id] && $_G['forum']['threadtypes']['prefix'] == 2}--><img class="vm" src="$_G[forum][threadtypes][icons][$id]" alt="" /> <!--{/if}-->$name<!--{if $showthreadclasscount[typeid][$id]}--><span class="xg1 num">$showthreadclasscount[typeid][$id]</span><!--{/if}--></li>

4、将选中分类时列表中的帖子链接伪静态化。打开 forum/forumdisplay_list.htm 模板,将:

<a href="forum.php?mod=viewthread&tid=$thread[tid]&{if $_GET['archiveid']}archiveid={$_GET['archiveid']}&{/if}extra=$extra"$thread[highlight]{if $thread['isgroup'] == 1 || $thread['forumstick']} target="_blank"{else} onclick="atarget(this)"{/if} class="s xst">$thread[subject]</a>

替换为:

<a href="forum.php?mod=viewthread&tid=$thread[tid]"{$thread[highlight]} {if $thread['isgroup'] == 1 || $thread['forumstick']}target="_blank"{else}onclick="atarget(this)"{/if} class="s xst">$thread[subject]</a>

修改后,当选中分类时,列表中的帖子链接将伪静态化,但帖子的分页链接仍未动态,还需进行以下修改。

打开 source/module/forum/forum_forumdisplay.php 文件,将:

<a href=\"forum.php?mod=viewthread&tid=$realtid&amp;".(!empty($multipate_archive) ? "$multipate_archive&amp;" : '')."extra=$extra&amp;page=$i\">

替换为:

<a href=\"thread-$realtid-$i-1.html\" onclick=\"atarget(this)\">

将:

<a href=\"forum.php?mod=viewthread&tid=$realtid&amp;".(!empty($multipate_archive) ? "$multipate_archive&amp;" : '')."extra=$extra&amp;page=$thread[pages]\">

替换为:

<a href=\"thread-$realtid-$thread[pages]-1.html\" onclick=\"atarget(this)\">

5、将版块页帖子标题前方的 主题分类 链接伪静态化。打开 source/module/forum/forum_forumdisplay.php 文件,将:

forum.php?mod=forumdisplay&fid='.$_G['fid'].'&amp;filter=typeid&amp;typeid='.$thread['typeid'].'

共两处,替换为:

forum-'.$_G['fid'].'-'.$thread['typeid'].'-1.html

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


已经有 7 条群众意见

  1. shine /2015-06-20 22:36

    你好,请问主题分类的伪静态怎么写,你在文中并未给出,谢谢! 回应

    #1
  2. 张工长shine/2015-06-21 08:14

    写了啊,你仔细看看。 回应

    #2
  3. shine张工长/2015-06-21 10:52

    嗯看到了,现在卡到了翻页伪静态上,很苦恼,按照你的教程总是列表页面空白,感觉是multi_forum定义没有生效的样子 回应

    #3
  4. 张工长shine/2015-06-21 12:11

    你是3.1版本吗?我没有在其它版本中测试过,在3.1中是没有问题的,你注意核对下,特别是下划线部分,末尾分号不要复制掉了。3.2版本应该差别不大。 回应

    #4
  5. shine张工长/2015-06-21 14:27

    嗯,是3.1。我没有完全按照你说的改,因为我不太需要精华、热门等的伪静态,所以在第七步中的 if 函数内容有删减,不知道是否是因为这个? 回应

    #5
  6. 张工长shine/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 = //这里用原来默认的代码
    } 回应

    #6
  7. 张工长 /2015-06-22 01:40

    注意以上回复中的单引号/双引号被自动替换成 中文单引号/双引号了 ,你自己批量替换一下。 回应

    #7

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