wordpress 模板标签----wp_nav_menu使用说明

wp_nav_menu()方法位于wp-includes/nav-menu-templates.php文件中。

其主要用途是通过该方法,

实现后台的生成菜单调用。

使用该功能之前,必须激活主题3.0+菜单功能。

方法如下:

在functions.php文件中加入

add_theme_support( 'nav-menus' );
或者

register_nav_menus( array( 'header-menu' => __( '导航自定义菜单' ), 'footer-menu' => __( '页角自定义菜单' ) ) );

简单调用如下:

<?php wp_nav_menu($args);?>

调用的menu默认排版为

<?php $defaults = array( 'theme_location' => , 'menu' => , 'container' => 'div', 'container_class' => 'menu-{menu slug}-container', 'container_id' => , 'menu_class' => 'menu', 'menu_id' => , 'echo' => true, 'fallback_cb' => 'wp_page_menu', 'before' => , 'after' => , 'link_before' => , 'link_after' => , 'depth' => 0, 'walker' => ); ?>

如果是多菜单的话,如下调用

<?php echo wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ) ?>

根据是否登录生成不同该菜单栏

<?php
if ( is_user_logged_in() ) {
     wp_nav_menu( array( 'theme_location' => 'logged-in-menu' ) );
} else {
     wp_nav_menu( array( 'theme_location' => 'logged-out-menu' ) );
}
?>

移除菜单栏
<?php
function my_wp_nav_menu_args( $args = '' )
{
	$args['container'] = false;
	return $args;
} // function

add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );
?>
或者
<?php wp_nav_menu( array( 'container' => '' ) );?>
总体步骤如下:
----------------------------------------------------------------------------------------------------------------

1. 激活导航菜单功能

外观/Appearance里面有个Menus菜单项,如果你的主题并没有激活导航菜单功能,该页将显示提示:
The current theme does not support menus.
你的主题还没有激活菜单功能。如何激活呢?很简单,把下面的代码放到你的functions.php文件中:
add_theme_support( 'nav-menus' );
然后刷新Menus页面,你会看到下图中的样子。
 

2. 添加导航菜单和菜单项

你可以创建多个导航菜单,每个菜单里,可以添加自定义链接项、页面项和分类项进去。
添加进去以后,你可以又再编辑每个项目的链接,输出文本和Title属性。
你可以拖拽每个项目来排序菜单项。
 

3. 通过Widget输出导航菜单

添加好菜单后,进入Appearance->Widgets(外观->小工具), 把Navigation Menu这个Widget拖到你的Sidebar模块里,选择一个菜单输出即要。
 

4. 通过手动代码输出导航菜单

如果你的主题不支持Widget或你不想使用Widget,你可以使用函数wp_nav_menu()直接输出导航菜单:
<?php wp_nav_menu($args); ?>
 
该函数可传递一个数组进去,指定该菜单的各项参数,比如调用哪个菜单、如何排序、给菜单指定一个div层等等。具体的各参数取值请见官方说明文档
当你使用<?php wp_nav_menu(); ?>时,将调用第一个导航菜单。如果你想调用其它菜单,可以通过菜单的id, slug, menu名称来指定:
<?php wp_nav_menu(array('id'=>5)); ?> or <?php wp_nav_menu(array('menu'=>'Test Menu')); ?> or <?php wp_nav_menu(array('slug'=>'testmenu')); ?>
 
但不知道是beta2还有bug还是我没折腾成功,有几个问题需要注意:
  • 我测试时,使用id并不能成功指定某个菜单。
  • 没有地方指定和寻找菜单的slug。
  • ‘menu’=>’菜单名称’可用。但当菜单名称使用的是中文,且你手动函数输出菜单的时候,你的模板代码应该是UTF-8或ANSI as UTF-8模式,才能正确的指定某个菜单。但不建议使用中文做为菜单名,中文菜单名还会输出一长串URL编码的字符指定为该菜单的id值,看着特不舒服。

    5. CSS样式化菜单风格

    下图是我测试的一个菜单输出的html代码,它包含几个外部自定义链接,一篇内部文章的自定义链接,一个分类和一个页面。

    我们可以看到,每个菜单项都含有一系列的class选择器:

    • 每个菜单项都含class选择器menu-item
    • 每个菜单项含有菜单类型class选择器: 比如自定义链接项含menu-item-type-custom, 页面项含menu-item-type_post_type, 分类项含menu-item-type-taxonomy
    • 页面项含菜单的对象类型class选择器 menu-item-object-page
    • 分类项含菜单的对象类型class选择器menu-item-object-category
    • 当位置处于当前页面或当前分类的时候,增加一个供高亮样式的class选择器current-menu-item
    • 当位置是一篇post文章时,该post如果在菜单中,也会增加高亮class选择器,同时,它所属的分类也会增加高亮class选择器。

    所以,我们可以通过这些选择器的不同来进行CSS样式化,比如把页面、分类和自定义链接指定不同的字体颜色,让当前项反色显示等等。





                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
wordpress-5.2.2-zh_cn.tar.gz是WordPress的一个版本,这个版本是用于中文网站的。 WordPress是一个开源的内容管理系统(CMS),它提供了一个易于使用的平台,用于创建和管理个人或商业网站。WordPress的强大之处在于它的灵活性和可扩展性,使得用户能够根据自己的需求定制他们的网站。 wordpress-5.2.2-zh_cn.tar.gz是一个压缩文件,它包含了WordPress 5.2.2版本的中文语言包。此文件可以安装在你的网站上,以便将整个WordPress界面和后台管理面板都翻译成中文。这样一来,中国用户可以更轻松地理解和操作WordPress,并创建他们自己的网站。 安装这个中文语言包非常简单。首先,你需要下载wordpress-5.2.2-zh_cn.tar.gz文件,并解压缩它。然后,将解压后的文件夹上传到你的WordPress安装目录的“wp-content/languages”文件夹中。接下来,在你的WordPress后台,在“设置”-“常规”菜单中,将网站的语言设置为“中文(中国)”,保存更改。 安装完成后,你将看到WordPress的所有文本和按钮都已经被翻译成中文,包括后台管理面板、主题、插件等。你可以根据自己的需要进行自定义设置,以及使用各种插件和主题来打造一个专属于你的中文网站。 总之,wordpress-5.2.2-zh_cn.tar.gz是WordPress的一个中文语言包,可以让用户将其网站转换为中文界面,以便更好地管理和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值