让Emlog导航栏的地址更简洁一点

2023-05-10 20:47:31 浏览数 (1)

自从Emlog升级到5.0版以后,后台的管理与设置就变得更简单和高效了,特别是新增加的“导航”功能,更是让导航栏的定制变得极其简单。不过稍微细心一点的EMER肯定会注意到,所有导航中添加的的自建页面、分类以及自定义导航(即原来的链接地址),都是一个带有“http://”的完整的地址,与系统本身的碎语和管理页面的地址相比,要长了许多,显得不够简洁。

那么,能不能让这些自己增加的除自定义导航(一般都是站外链接)之外的导航栏目也像碎语或管理页面那样,直接使用短地址,从而将博客安装路径那一大串字符省略呢?

P.S. 若自定义导航是站内链接,也可作相同处理

初看似乎是可以的,在首页访问各个页面也没有错误。但是,当我们不是在默认的首页,而是在其它页面访问导航栏上的各个栏目时,问题就来了,此时访问的实际地址为当前页面的地址后面加上后台所设置的跳转地址。比如我如果访问了本站的“原创”标签,马上再点“留言”,结果访问地址变成了“http://www.f162.cn/tag/gbook.html”,将进入错误页面。

难道此路行不通?先不要着急,其实我们只要对模板再作一点小小的修改,完全可以访问这种短地址。下面是关键:打开自己正在使用的模板中的 module.php 文件,找到

代码语言:javascript复制
$value['url'] = $value['isdefault'] == 'y' ? BLOG_URL . $value['url'] : trim($value['url'], '/');

一句,将其替换为如下语句:

代码语言:javascript复制
if (!strstr(strtolower($value['url']),'http://')){
    $value['url'] = BLOG_URL . $value['url'];
}

这样就可以了。现在,不论从什么页面访问导航栏,都不会再出错了。而且,这样做还有一个额外的好处,如果我们使用了多域名的代码(可参考本博《Emlog程序实现多域名全站访问的方法》一文),在用其它域名访问同一个网站的时候,访问导航栏上的栏目也不会再跳回到原来的域名了。

不过,要特别指出的是,如果你后台的导航使用了这种短地址,在更换模板之后,一定要记得对新使用的模板也要作同样的修改。

0 人点赞