现在大多数主题都会调用 WordPress 的菜单功能,而用户刚使用主题如果没有设置菜单的话就会显示站点的所有页面,而且没有 class 和 id,这样就容易导致错位。为防止错位也为了给用户提示,我们可以在用户没有设置菜单时在需要显示菜单的地方加一段提示语,来引导用户。
其实我们仔细查看导航菜单调用函数的属性时就不难发现有一个 fallback_cb:https://www.wpdaxue.com/register_nav_menus-and-wp_nav_menu.html#导航菜单调用函数 wp_nav_menu() 介绍
这个属性用来控制没有设置菜单时的回调函数,我们只需要设置一个函数输出提示语即可。
将下面的函数添加到主题的 functions.php:
//菜单回调函数 function Bing_nav_fallback(){ echo '<div class="menu-alert">'.__( '请在 “后台 - 外观 -菜单” 设置<a href="https://www.wpdaxue.com/tag/%e5%af%bc%e8%88%aa%e8%8f%9c%e5%8d%95" title="查看与【导航菜单】相关的文章" target="_blank" rel="noopener">导航菜单</a>','Bing' ).'</div>'; } |
然后在 wp_nav_menu() 这个函数中添加 fallback_cb 参数,例如
wp_nav_menu(array( 'theme_location'=>'header_menu', 'container'=>false, 'items_wrap'=>'<ul id="topmenu">%3$s</ul>', 'fallback_cb'=>'Bing_nav_fallback' )); |
当然,不仅仅可以返回提示语,因为可以定义一个函数,所以在没有设置菜单的时候几乎可以执行任何操作,当然这需要开发者的创意了。
来源:
https://www.wpdaxue.com/wp_nav_menu-fallback_cb.html