wordpress模板主题仿站开发教程四-wordpress菜单导航调用

wordpress模板主题仿站开发菜单导航调用之前,先在网站后台添加分类栏目,与单页栏目,如图所示(分类栏目就是指网站的列表页:如产品中心,新闻中心,新建页面:指的是网站的单页,比如联系我们,关于我们呢

然后在后台外观》菜单中创建新菜单命名为 nav然后把你想要放到导航菜单栏的分类或者是单页,勾选上后点击添加至菜单就可以啦,最后就是在网站前台调用我们的菜单了

1、wordpress菜单导航前台调用方法分为以下三种

方法一:直接调用wordpress默认的导航菜单样式  方法二: 同样是调用默认菜单导航,但是更改数组后面参数可以更改默认样式的值

<? wp_nav_menu() ?>                            方法一(默认菜单调用方法)

<?php                                          方法二(默认菜单调用方法,可更改样式)
  wp_nav_menu( array(
    'theme_location'  => '',                   //导航别名
    'menu'   => '',                            //期望显示的菜单
    'container'  => 'div',                     //容器标签
    'container_class' => '',                   //ul父节点class值
    'container_id'  => '',                     //ul父节点id值
    'menu_class'   => 'menu',                  //ul节点class值
    'menu_id'   => '',                         //ul节点id值
    'echo'  => true,                           //是否输出菜单,默认为真
    'fallback_cb' => 'wp_page_menu',           //菜单不存在时,返回默认菜单,设为false则不返回
    'before' => '',                            //链接前文本
    'after'  => '',                            //链接后文本
    'link_before'  => '',                      //链接文本前
    'link_after'  => '',                       //链接文本后
    'items_wrap'  => '<ul id="%1$s" class="%2$s">%3$s</ul>',   //如何包装列表
    'depth' => 0,                             //菜单深度,默认0
    'walker' => ''                            //自定义walker
  ) );

?>

方法三、顶级分类和单页组成菜单导航

<li<?php if (is_home()) { echo ' class="current-cat"';} ?>><a title="Home" href="/">主页</a></li>
<?php
$currentcategory = '';

// 以下这行代码用于在导航栏添加分类列表,

if  (is_category() || is_single()) {
	$catsy = get_the_category();
	$myCat = $catsy[0]->cat_ID;
	$currentcategory = '&current_category='.$myCat;
}
wp_list_categories('depth=1&title_li=&show_count=0&hide_empty=0&child_of=0'.$currentcategory);

// 以下这行代码用于在导航栏添加页面列表
wp_list_pages('depth=1&title_li=&sort_column=menu_order');

?>

方法四、分类与页面组合菜单导航
使用get_terms()来获取分类列表,使用get_pages()来获取页面列表

也可以用此方法调用指定分类栏目parent=0即为父分类的id没有父分类即为0 
更多参数  https://developer.wordpress.org/reference/classes/wp_term_query/__construct/
<?php
	// 获取分类 orderby=id按id排序parent=0调用顶级栏目 number=2循环个数
	$terms = get_terms('category', 'orderby=id&hide_empty=0&parent=0&number=2' );
	// 获取到的分类数量
	$count = count($terms);
	if($count > 0){
	// 循环输出所有分类信息
		foreach ($terms as $term) {
			echo '<li><a href="'.get_term_link($term, $term->slug).'" title="'.$term->name.'">'.$term->name.'</a></li>';
		}
 	}
?>	
//parent=0 调用顶级栏目 number=2循环个数
<?php
$mypages = get_pages('parent=0&number=2');

if(count($mypages) > 0) {
    foreach($mypages as $page) {
        echo '<li><a href="'.get_page_link($page->ID).'" title="'.$page->post_title.'">'.$page->post_title.'</a></li>';
    }
}
else {
    echo '<li><a href="#">没有页面</a></li>';
}
?>	

get_terms函数的数组

[term_id] => 2                           分类id
[name] => 产品中心                 分类名称
[slug] => product                     
[term_group] => 0
[term_taxonomy_id] => 2
[taxonomy] => category
[description] => 分类描述
[parent] => 0                            分类父元素id
[count] => 2
[filter] => raw

get_pages()函数的数组

[post_author] => 1
[post_date] => 2021-06-29 09:57:35
[post_date_gmt] => 2021-06-29 01:57:35
[post_content] => 
[post_title] => 联系我们
[post_excerpt] => 
[post_status] => publish
[comment_status] => closed
[ping_status] => closed
[post_password] => 
[post_name] => contact
[to_ping] => 
[pinged] => 
[post_modified] => 2021-06-29 09:57:35
[post_modified_gmt] => 2021-06-29 01:57:35
[post_content_filtered] => 
[post_parent] => 0
[guid] => http://word03.com/?page_id=13
[menu_order] => 0
[post_type] => page
[post_mime_type] => 
[comment_count] => 0
[filter] => raw 

使用get_terms可以获取你的文章分类、链接分类和自定义分类等,给get_terms()传递相应的参数可以给你返回一个对象数组,这个数组就是你想要的所有分类,以下是get_terms()的函数原型:

<?php get_terms( $taxonomies, $args ) ?>

$taxonomies:
     该参数是你想要获取的分类类别,可选值包括:"category","link_category","my_taxonomy",他们分别代表文章分类、链接分类以及你自定义的分类,其中my_taxonomy是你自定义的分类名称。

$args:
     该参数是分类的筛选参数,用于控制获取你要获取的分类,包括你想要获取多少个分类、如何排序、父分类以及是否输出空的分类等,具体请参考WordPress官方文档

$taxonomies:
     该参数是你想要获取的分类类别,可选值包括:"category","link_category","my_taxonomy",他们分别代表文章分类、链接分类以及你自定义的分类,其中my_taxonomy是你自定义的分类名称。

get_terms()函数返回一个对象数组$terms,我们首先判断这个数组是否为空,为空说明并没有获取到任何分类,如果不为空那么你就可以输出分类了。$terms的每个数组项就是一个对象,部分对象属性的意义如:slug:分类缩略名,name:分类名,term_id:分类id。如以上代码所示,你可以通过$term->name来获取对象的属性值。

WordPress的页面page可以通过wp_list_pages()来列出,不过这个函数输出的HTML都是固定的,如果你想要自定义这些HTML,可以使用get_pages()来获取页面列表

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远的WEB小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值