由于本博客的主题默认是没有菜单栏的,介于自己的PHP、CSS相关技能有限,一直没有考虑自己制作一个。得知最近Google全站链接改版,为了让Google生成全站链接可不是什么简单的事,即便网站有了可观的流量,如果没有很直观明了的导航栏(菜单栏),Google还是很难帮我们生成全站链接的。观察了很多有Google全站链接的博客,无一例外都是有着清晰导航栏(菜单栏)的,而且菜单项的链接地址深度大都只有一层。因为这个缘故,我终于下定决心,为CppLive 编程在线也制作一个导航栏(菜单栏)。
刚开始的时候,真是一窍不通,看着网上的很多教程,就是整不出来,后来发现自己跨不过去的那到砍是CSS,把链接地址列出来容易,因为只要调用Wordpress自带的几个函数就可以了,但是让链接有规则的排列,触发一些鼠标事件还得我们自己通过编写CSS代码实现,本人的CSS水平真是不敢恭维啊,让我照葫芦画瓢可以,要我从头开始写就是犯愁了,折腾了几个小时依旧没有任何进展,没办法了,只好找葫芦。照着别人写好的菜单栏CSS代码有针对性的改,不一会儿就搞定了,不过下拉的效果尚未实现,看哪天有空再弄吧。下面将修改的过程简要记录下,留着以后深入研究。
1、因为我使用的主题没有菜单,故需要向Wordpress注册一个导航菜单,在functions.php中加入如下代码。
/* 注册菜单,命名为Primary Navigation */
register_nav_menus( array(
'primary' => __( 'Primary Navigation', 'warrior' ),
) );
/* 下面函数是为了兼容之前的wp_list_pages() */
function warrior_page_menu_args( $args ) {
$args['show_home'] = true;
return $args;
}
add_filter( 'wp_page_menu_args', 'warrior_page_menu_args' );
2、注册好以后,需要在适当的地方调用导航菜单,显然是在header.php中调用,在header.php中加入如下代码。
<div id="nav"> <?php wp_nav_menu(); ?> </div>
3、光有以上两步,生成的导航菜单是一列单纯的链接,极不美观,所以需要在style.css中编写nav类的实现,加入如下代码。
#nav {
width: 985px;
height: 47px;
position: relative;
padding-left: 15px!important;
left: 0px;
}
#nav li {
line-height: 46px;
position: relative;
float: left;
list-style-type: none;
padding: 0 15px;
white-space:nowrap;
}
#nav li.down {
background: url(images/down.gif) right center no-repeat;
}
#nav li.downover {
background: url(images/down_over.gif) right center no-repeat;
}
#nav a {
color: #fff;
font-weight: bold;
font-size: 14px;
}
#nav li ul {
position: absolute;
top: 35px;
left: 10px;
-moz-border-radius: 5px;
-khtml-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
background: #fff;
padding: 0;
clear: both;
display: none;
z-index: 1000;
}
#nav li ul li {
padding: 0;
width: 100%;
line-height: 20px;
-moz-border-radius: 5px;
-khtml-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
#nav li ul li a {
display: block;
width: 100%;
padding: 3px 10px;
text-shadow: 1px 1px 1px transparent;
}
#nav li ul li a:hover {
color: #fff;
}
#nav ul ul{
left: 100%;
top: -1px;
}
#nav {
background: url(images/nav_skyblue.png);
}
#nav a {
text-shadow: 1px 1px 1px #006f8f;
}
#nav a:hover {
color: #b0ecff;
}
#nav li ul {
border: 1px solid #007496;
}
除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。




你真的加上导航菜单了呀!
是啊,我是觉得加上导航菜单有利于Google自动生成那个全站链接。 😀