SandBox是一款很优秀的模板,简单,整洁,高度的自定义特性,丰富的语义标签,诸多优点,使得这款主题曾经被用来进行WordPress主题比赛。
我也被SandBox的这种特性所吸引,更让我看重的是使用这款主题,可以像CSS 禅意花园那样,只通过更换CSS样式表,就使整个界面风格改变。虽然我对CSS也有兴趣,但是实在没有时间和艺术细胞去自己搞一个CSS,好在有很多的爱好者,做了无数的美丽主题,使得我可以不费吹灰之力,就把自己的主页变成了现在这个样子。
然而,非常遗憾,对于用惯了K2的我来说,SandBox还是有很多功能上的不足呢。不过人家本来也不是以功能强大和动态效果著称的,没法子,只好自己动手了,谁叫这个模板叫“SandBox”呢(A low box filled with sand for children to play in.)。
以前,真的用了很长时间的K2,后来由于使用K2模板的主页不知道为什么一直在我的虚拟主机上运行超时,才不得已换掉了。但是K2带给我的那完美的印象却没有因此损失分毫。所以,我最想做的,就是让我的SandBox在常用功能上,更接近K2。
好,首先就是把主页导航给补充完整——添加“首页”的链接,其实,这是一个很简单的事情(难的我也不会),就几行代码就可以搞定了,但是不知道为什么,那么多模板,都没有考虑到这个问题,一个最最一般的网站也会有这个链接的。
不废话了,直接说怎么改吧,打开/rootdir/wp-content/themes/sandbox/functions.php,找到下面的代码:
- function sandbox_globalnav() {
- echo '<div id="menu"><ul>';
- $menu = wp_list_pages('title_li=&sort_column=menu_order&echo=0'); // Params for the page list in header.php
- echo str_replace(array("\r", "\n", "\t"), '', $menu);
- echo "</ul></div>\n";
- }
- ?>
将上述的代码改成:
- function sandbox_globalnav() {
- echo '<div id="menu"><ul>';
- //========添加代码=========//
- if ('page' != get_option('show_on_front')) {
- echo '<li class="';
- if ( is_home() or is_archive() or is_single() or is_paged() or is_search() or (function_exists('is_tag') and is_tag()) ) {
- echo 'current_page_item';
- } else {
- echo 'page_item';
- }
- echo '"><a href="';
- echo get_settings('home');
- echo '">首 页</a></li>';
- }
- //========END============//
- $menu = wp_list_pages('title_li=&sort_column=menu_order&echo=0'); // Params for the page list in header.php
- echo str_replace(array("\r", "\n", "\t"), '', $menu);
- //下面这行的作用是添加“网站管理”和“注册”
- wp_register('<li class="admintab">','</li>');
- echo "</ul></div>\n";
- }
- ?>
简单解释一下上述的代码,show_on_front是WordPress的一个属性值,指的是WordPress默认展示的页面,可以是最新发表的文章,对应的值为posts,也可以是静态页面,对应的值为page。如果你自己指定一个页面作为默认展示的页面,那么那个页面就应该是真正意义的首页,你说对吗?所以这种情况下,我们是不用多此一举添加一个首页导航的。
接下来的一些代码是确定,什么情况下,给首页链接的class添加current_page_item类的代码,这主要是为了在CSS里面控制current page的导航标签的显示样式用的,如果你的导航是那种纯粹的没有任何变化的导航条,那么下面这段if中的代码也就没有用了。
最底下,我加了一行wp_register()函数,这种wp_xxxx()的函数,叫做WordPress Template Tag。按照文档,这个函数的功能是在没有登录的时候显示“注册”,登录后,改成显示“网站管理”。熟悉这些的人一定知道,这也是在学K2,但是其实,K2导航上是不会显示“注册”的,我在自己机器上调试的时候,也不会显示注册,难道说这是WordPress 2.3.2和2.3.3的一个差别?不得而知了。
搜到这里,很有用~呵呵~谢谢
尽量不修改源文件,添加home,请看
http://forums.sndbx.org/viewtopic.php?pid=140
侠姐怎么跑我这里考古来了,当年我写这个文章的时候,那里还没有使用filter呢,哈哈哈。这个问题,我还没来得及说呢~~
@BigBri:I have no idea what you said, but I wish you good luck! Welcome buddy!
I have no idea what this page says, but I totally got it working on my site!
Thanks buddy!