【站长学堂】wordpress函数使用技巧:让我们自定义网站菜单栏

屏聚源码 2019年9月1日22:02:31屏聚学院评论85,449阅读模式

  当我们在制作wordpress主题时,除了知道wordpress常用的模版函数之外,我们还要知道这些函数要如何用!今天就来讲讲网站栏目的调用函数<?php wp_nav_menu(); ?>的使用方法。

  <?php wp_nav_menu(); ?>函数是3.0之后才出的模版函数,这个函数位于wp-includes/nav-menu-templates.php文件中。而我们通过这个函数,可以实现后台自定义菜单的调用。因此这个函数深受很多wordpress主题开发者的喜爱。而我们在使用这个功能之前,先要激活这个功能,因此我们需要再functions.php中加入add_theme_support( 'nav-menus' );或者

  1.   // 自定义菜单

  2.   register_nav_menus(

  3.   array(

  4.   ‘header-menu’ =&gt; __( ’导航自定义菜单’ ),

  5.   ‘footer-menu’ =&gt; __( ’页角自定义菜单’ )));

  简单调用如下:

  1.   <?php wp_nav_menu($args);?>

  调用的menu默认排版为

  1.   <?php $defaults = array(

  2.   'theme_location' => ,

  3.   'menu' => ,

  4.   'container' => 'div',

  5.   'container_class' => 'menu-{menu slug}-container',

  6.   'container_id' => ,

  7.   'menu_class' => 'menu',

  8.   'menu_id' => ,

  9.   'echo' => true,

  10.   'fallback_cb' => 'wp_page_menu',

  11.   'before' => ,

  12.   'after' => ,

  13.   'link_before' => ,

  14.   'link_after' => ,

  15.   'depth' => 0,

  16.   'walker' => );

  17.   ?>

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

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

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

  1.   <?php

  2.   if ( is_user_logged_in() ) {

  3.   wp_nav_menu( array( 'theme_location' => 'logged-in-menu' ) );

  4.   } else {

  5.   wp_nav_menu( array( 'theme_location' => 'logged-out-menu' ) );

  6.   }

  7.   ?>

  移除菜单栏

  1.   <?php

  2.   function my_wp_nav_menu_args( $args = '' )

  3.   {

  4.   $args['container'] = false;

  5.   return $args;

  6.   } // function

  7.   add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );

  8.   ?>

  或者

  1.   <?php wp_nav_menu( array( 'container' => '' ) ); ?>

  wp_nav_menu() 参数详解

  theme_location: 调用一个与特定的主题位置相关联的菜单。

  menu: 调用指定ID、别名或名称的菜单。

  container: 封装该菜单的元素。默认是 div,但是如果你使用HTML 5的话,你也可以改为nav。

  container_class: 封装元素的CSS类(指定其显示样式)。

  menu_class: 指定无序列表的CSS类,默认是 menu。

  fallback_cb: 指定不存在菜单项目时要调用的函数。默认情况下会调用wp_list_pages() 函数(WordPress的静态页面列表)。

  before: 要显示在链接文字之前的文字(也是链接的一部分)。

  after: 要显示在链接文字之后的文字(也是链接的一部分)。

  link_before: 要显示在链接前面的文字(不是链接的一部分)。

  link_after: 要显示在链接后面的文字(不是链接的一部分)。

  depth: 指定显示菜单的层次深度,这在定义下拉式菜单的比较有用。默认情况是0(所有层次)。

  walker: 允许自定义一个walker(巡游?)PHP 类来创建菜单。

  echo: 定义是显示该菜单还是仅仅返回数据供PHP程序使用。默认是真,直接显示该菜单。

  注意:’theme_location’ => ‘primary’,这句代码调用的是主菜单的意思。所以,要使用上面这句代码,还要在后台设置主菜单(如下图),否则会显示错位或调用页面菜单。我就出现过这样的情况,因为要用多语言插件Polylang来实现网站菜单的多语言,所以必须用到这句代码,搞了半天才弄明白是怎么回事。

继续阅读
屏聚源码
软著申请流程详解 屏聚学院

软著申请流程详解

前言 计算机软件著作权:是指自然人、法人或者其他组织对计算机软件作品享有的财产权利和精神权利的总称。通常语境下,计算机软件著作权又被简称为软件著作权、计算机软著或者软著。 计算机软件著作权与一般作品著...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定