整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

网站如何添加导航菜单?只需wp_list_categories就可搞定

前面的章节中,我们介绍了基于page页面的wordpress网站导航菜单的函数——wp_list_pages()。今天,我们再来介绍第二种导航菜单的方式——基于wordpress网站的文章分类目录的导航菜单,这种wordpress导航菜单是通过wp_list_categories()函数来实现的,它可以将wordpress网站的分类目录展示在wordpress网站前台的导航菜单中。下面,我们一起来看看如何使用wp_list_categories()来创建wordpress网站导航菜单吧。

一、wp_list_categories()函数用法。


wp_list_categories( string|array $args = '' );

这个函数有一个参数,它的参数既可以是字符串类型的数据,也可以是一个数组类型的数据,这点跟wp_list_pages()函数类似。

二、wp_list_categories()函数的参数详解。


$args = array('show_option_all' => '',//是否列出分类链接;'orderby' => 'name',//按名称排列;'order' => 'ASC',//分类目录的排序。升、降序;'style' => 'list',//是否用列表(ul>li)标签;'show_count' => 0,//是否显示文章数量;'hide_empty' => 1,//是否显示没有文章的分类;'use_desc_for_title' => 1,//是否显示分类描述;'child_of' => 0,//是否限制子分类 ;'exclude' => '',//排除分类的ID,多个用',(英文逗号)'分隔;'exclude_tree' => '',//排除分类树,即父分类及其下的子分类;'include' => '',//包括哪些分类的ID;'title_li' => 'Categories',//导航菜单的列表标题名称;'show_option_none' =>'No categories',//网站没有分类时显示的标题;'number' => null,//显示分类的数量;'echo' => 1,//是否打印到前台页面显示,1显示,0不显示而是返回字符串;'hierarchical' => true,//是否将子、父分类分级;'depth' => 0,//层级限制;'current_category' => 0,//指定分类ID,在前台页面链接添加current-cat的CSS类,方便修改样式;'pad_counts' => 0,//计算包括子分类的链接或文章数;'taxonomy' => 'category',//使用的文章分类类型;'walker' => null//生成列表 Walker 类;);

以上,我们列举了wp_list_categories()函数的主要的参数,以及它们都代表什么。其实,在我们的实际使用中,并不是每一个参数都会用到,一般情况下,我们只会使用其中的某几个。我们会在下面的案例中具体解说。

三、wp_list_categories()案例。

案例1:分类目录导航列表按层级来排列。


$menu = array( 'depth' =>0, 'title_li'=>'', 'echo'=>1,);wp_list_categories($menu);

如下图,子分类会按层级的关系,缩进去2格;并且没有显示列表的标题。

案例2:只显示顶级分类,不显示子分类,并显示列表标题。


$menu = array( 'depth' =>1, 'title_li'=>'这是分类列表的标题', 'echo'=>1,);wp_list_categories($menu);

这里,我们把depth参数的值设成1,就表示只显示一级分类目录,子分类就不会显示;如果设成2,就会显示2级分类,子分类就会显示;如果设成3,就会显示3级分类,子分类和子分类的子分类都会显示出来;以此类推。设成0,表示所有分类都显示,并且按层级显示。另外,我们这里也添加了分类菜单的列表标题,这样,如果在侧边伴,这个标题还是非常管用的;如果是顶部导航菜单,这个标题还是省略比较好。效果如下图:

案例3:排除某些分类。也就是不让某些分类显示出来。代码如下:


$menu = array( 'depth' =>1, 'title_li'=>'', 'echo'=>1, 'exclude' => '52,81,103',);wp_list_categories($menu);

这里,我们设置了排除3个分类,它们的ID号分别是:52(亲子),81(养生),103(家居)。这样,我们在wordpress网站的前台页面的导航菜单中就看不到这几个分类目录。如下图,可以对比一下上图:

​好了,关于wordpress网站分类目录导航菜单函数wp_list_categories(),这里我们就只举这几个案例,在实际应用中,我们可以根据不同的需求,来设置不同的参数,要做到灵活多变。这些参数还是很好理解的,只需多练习,就可轻松掌握。

CSS

#goTopBtn, #goBottom, #shangy, #xiay, #menuPage, #lPage, #fPage{

width: 18px;

line-height: 1.2;

padding: 5px 0;

font-size: 12px;

text-align: center;

position: fixed;

right: 10px;

cursor: pointer;

filter: Alpha(opacity=30);

opacity=.3;

font-weight:bold;

}

#goTopBtn, #goBottom, #menuPage, #lPage, #fPage{

background-color:#999;

color:#000;

}

#shangy, #xiay, #lPage, #fPage{

background-color: #bbb;

color: #000;

}

#fPage{

bottom: 236px;

height:42px;

white-space:nowrap;

overflow:hidden;

//writing-mode:tb-rl;

}

#menuPage{

bottom: 198px;

height:27px;

white-space:nowrap;

overflow:hidden;

}

#lPage{

bottom: 145px;

height:42px;

white-space:nowrap;

overflow:hidden;

}

#goTopBtn{

bottom: 105px;

}

#goBottom {

bottom: 30px;

}

#shangy {

bottom: 80px;

}

#xiay {

bottom: 55px;

}

#goTopBtn:hover, #goBottom:hover, #shangy:hover, #xiay:hover, #menuPage:hover, #lPage:hover, #fPage:hover{

background-color:#ccc;

border:#ccc 0px solid;

}

#goTopBtn a:link, #goBottom a:link, #xiay a:link, #shangy a:link, #menuPage a:link, #menuPage a:visited, #lPage a:link, #fPage a:link, #lPage a:visited, #fPage a:visited {

text-decoration: none;

color:white;

}

2 HTML

<div id="fPage"><a id="fPagea" href="javascript:void(null)" target="_self">上<br />一<br />页</a></div>

<div id="menuPage"><a href="index.html" target="_self">目<br />录</a></div>

<div id="lPage"><a id="LPagea" href="javascript:void(null)" target="_self">下<br />一<br />页</a></div>

<div style="display:none" id="goTopBtn"><a target="_self" style="color:#fff;">&and;</a></div>

<div style="display:none" id="shangy">

<a onclick="shangy()" target="_self" style="color:#fff;">&uarr;</a></div>

<div id="xiay">

<a onclick="xiay()" target="_self" style="color:#fff;">&darr;</a></div>

<div id="goBottom">

<a onclick="downn()" target="_self" style="color:#fff;">&or;</a></div>

3 JS

<script type=text/javascript>

goTopEx();

function xiay(){

window.scrollBy(0,window.innerHeight-10);

}

function shangy(){

window.scrollBy(0,-window.innerHeight+10);

}

var obj3=document.getElementById("xiay");

var obj4=document.getElementById("goBottom");

function getHeight(){

if(browser4=="ch"){

//谷歌浏览器

return document.body.clientHeight;

}else{

//IE、firefox等浏览器

return document.documentElement.clientHeight;

}

}

getHeight()<window.innerHeight+50?obj3.style.display="none":obj3.style.display="";

getHeight()<window.innerHeight+50?obj4.style.display="none":obj4.style.display="";

if(browser4!="ch"){//firefox需要尝一下才显示向下图标

xiay();

shangy();

}

//上一页、下一页按钮,需要文件名是数字

var strUrl=window.location.href;

var arrUrl=strUrl.split("/");

var thispage=arrUrl[arrUrl.length-1];

var thispage2=thispage.split(".");

var thispage3=thispage2[thispage2.length-2];

if(thispage3 == 1){

var obj5=document.getElementById("fPage");

obj5.style.display="none"

}else{

var fpage = thispage3 - 1;

fpage = fpage +".html"

document.getElementById("fPagea").href=fpage;

}

if(thispage3 == 100){

var obj6=document.getElementById("lPage");

obj6.style.display="none"

}else{

var fpage = thispage3 - 1;

fpage = fpage +".html"

document.getElementById("fPagea").href=fpage;

}

</script>

当将鼠标停留在“上一面”按钮处时,网页效果如下:

-End-

var topBtn = document.getElementById('top');
// 获取视窗高度
var winHeight = document.documentElement.clientHeight;
window.onscroll = function () {
    // 获取页面向上滚动距离,chrome浏览器识别document.body.scrollTop,而火狐识别document.documentElement.scrollTop,这里做了兼容处理
    var toTop = document.documentElement.scrollTop || document.body.scrollTop;
    // 如果滚动超过一屏,返回顶部按钮出现,反之隐藏
    if(toTop>=winHeight){
        topBtn.style.display = 'block';
    }else {
        topBtn.style.display = 'none';
    }
}
topBtn.onclick=function () {
    var timer = setInterval(function () {
        var toTop = document.documentElement.scrollTop || document.body.scrollTop;
        // 判断是否到达顶部,到达顶部停止滚动,没到达顶部继续滚动
        if(toTop == 0){
            clearInterval(timer);
        }else {
            // 设置滚动速度
            var speed = Math.ceil(toTop/5);
            // 页面向上滚动
            document.documentElement.scrollTop=document.body.scrollTop=toTop-speed;
        }
    },50);
}