WordPress中注册菜单与调用菜单的方法详解
<p><strong>register_nav_menus()(注册菜单)</strong><br>
register_nav_menus() 函数用来注册一个菜单,菜单指的是 WordPress 3.0+ 的菜单管理器,注册之后用户就可以在菜单管理器里拖动生成导航菜单了。</p>
<p>
用法</p>
<div>
<div>
<div id="highlighter_454220">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>register_nav_menus( </code><code>$locations</code> <code>);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
参数</p>
<p>
$locations</p>
<p>
(数组)(必须)要注册的菜单,键值为菜单 ID,键名为菜单名称,可以一次创建多个。</p>
<p>
默认值:None</p>
<p>
返回值</p>
<p>
该函数无返回值。</p>
<p>
例子</p>
<div>
<div>
<div id="highlighter_187521">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
<div>
10</div>
<div>
11</div>
</td>
<td>
<div>
<div>
<code>/**</code>
</div>
<div>
<code> </code><code>*建立菜单</code>
</div>
<div>
<code> </code><code>*http://www.endskin.com/register_nav_menus/</code>
</div>
<div>
<code>*/</code>
</div>
<div>
<code>function</code> <code>Bing_register_nav_menus(){</code>
</div>
<div>
<code> </code><code>register_nav_menus( </code><code>array</code><code>(</code>
</div>
<div>
<code> </code><code>'header_menu'</code> <code>=> __( </code><code>'顶部菜单'</code><code>, </code><code>'Bing'</code> <code>),</code>
</div>
<div>
<code> </code><code>'footer_menu'</code> <code>=> __( </code><code>'页脚菜单'</code><code>, </code><code>'Bing'</code> <code>)</code>
</div>
<div>
<code> </code><code>));</code>
</div>
<div>
<code>}</code>
</div>
<div>
<code>add_action( </code><code>'init'</code><code>, </code><code>'Bing_register_nav_menus'</code> <code>);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
其它</p>
<p>
该函数位于:wp-includes/nav-menu.php</p>
<p>
<br><strong>wp_nav_menu()(菜单调用)</strong><br>
下面就来说一下怎么调用用户添加好后的菜单。</p>
<p>
调用菜单主要使用 wp_nav_menu() 函数,wp_nav_menu() 函数的参数比较多,所以功能非常强大,这里会一个一个的讲解。</p>
<p>
用法</p>
<div>
<div>
<div id="highlighter_274205">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>wp_nav_menu( </code><code>$args</code> <code>);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
参数</p>
<p>
参数只有一个 $args,但这是一个数组,通过给数组添加参数,可以定制更多细节,下边是默认值:</p>
<p>
</p>
<div>
<div>
<div id="highlighter_895851">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
<div>
6</div>
<div>
7</div>
<div>
8</div>
<div>
9</div>
<div>
10</div>
<div>
11</div>
<div>
12</div>
<div>
13</div>
<div>
14</div>
<div>
15</div>
<div>
16</div>
<div>
17</div>
<div>
18</div>
<div>
19</div>
</td>
<td>
<div>
<div>
<code>$defaults</code> <code>= </code><code>array</code><code>(</code>
</div>
<div>
<code> </code><code>'theme_location'</code> <code>=> </code><code>''</code><code>,</code>
</div>
<div>
<code> </code><code>'menu'</code> <code>=> </code><code>''</code><code>,</code>
</div>
<div>
<code> </code><code>'container'</code> <code>=> </code><code>'div'</code><code>,</code>
</div>
<div>
<code> </code><code>'container_class'</code> <code>=> </code><code>''</code><code>,</code>
</div>
<div>
<code> </code><code>'container_id'</code> <code>=> </code><code>''</code><code>,</code>
</div>
<div>
<code> </code><code>'menu_class'</code> <code>=> </code><code>'menu'</code><code>,</code>
</div>
<div>
<code> </code><code>'menu_id'</code> <code>=> </code><code>''</code><code>,</code>
</div>
<div>
<code> </code><code>'echo'</code> <code>=> true,</code>
</div>
<div>
<code> </code><code>'fallback_cb'</code> <code>=> </code><code>'wp_page_menu'</code><code>,</code>
</div>
<div>
<code> </code><code>'before'</code> <code>=> </code><code>''</code><code>,</code>
</div>
<div>
<code> </code><code>'after'</code> <code>=> </code><code>''</code><code>,</code>
</div>
<div>
<code> </code><code>'link_before'</code> <code>=> </code><code>''</code><code>,</code>
</div>
<div>
<code> </code><code>'link_after'</code> <code>=> </code><code>''</code><code>,</code>
</div>
<div>
<code> </code><code>'items_wrap'</code> <code>=> </code><code>'<ul id="%1$s">%3$s</ul>'</code><code>,</code>
</div>
<div>
<code> </code><code>'depth'</code> <code>=> 0,</code>
</div>
<div>
<code> </code><code>'walker'</code> <code>=> </code><code>''</code>
</div>
<div>
<code>);</code>
</div>
<div>
<code>wp_nav_menu( </code><code>$defaults</code> <code>);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
详解:</p>
<p>
theme_locaton</p>
<p>
(字符串)(可选)要调用的菜单的名字,比如 header_menu,如果没指定,则默认显示第一个注册的菜单。</p>
<p>
默认值:None</p>
<p>
menu</p>
<p>
(字符串)(可选)使用导航菜单的名称调用菜单,可以是 ID、别名和名字(按顺序匹配)。</p>
<p>
默认值:None</p>
<p>
container</p>
<p>
(字符串)(可选)导航菜单的容器类型,只支持 div 和 nav 标签,如果是其它值,ul 父节点的标签将不会显示。也可以设置成 False 去掉 ul 父节点。</p>
<p>
默认值:div</p>
<p>
container_class</p>
<p>
(字符串)(可选)ul 父节点的 class 属性。</p>
<p>
默认值:menu-{menu slug}-container</p>
<p>
container_id</p>
<p>
(字符串)(可选)ul 父节点的 id 属性。</p>
<p>
默认值:None</p>
<p>
menu_class</p>
<p>
(字符串)(可选)ul 节点的 class 属性。</p>
<p>
默认值:None</p>
<p>
menu_id</p>
<p>
(字符串)(可选)ul 节点的 id 属性。</p>
<p>
默认值:菜单别名</p>
<p>
echo</p>
<p>
(布尔)(可选)返回导航菜单的 Html 代码还是直接打印输出,如果你想把导航菜单代码存到变量里请设置成 False.</p>
<p>
默认值:True(直接打印输出)</p>
<p>
fallback_cb</p>
<p>
(回调函数)(可选)后台没有设置此菜单时默认显示的内容。</p>
<p>
默认值:wp_page_menu</p>
<p>
before</p>
<p>
(字符串)(可选)显示在每个菜单链接前的文本。</p>
<p>
默认值:None</p>
<p>
after</p>
<p>
(字符串)(可选)显示在每个菜单链接后的文本。</p>
<p>
默认值:None</p>
<p>
link_before</p>
<p>
(字符串)(可选)显示在每个菜单链接文本前的文本。</p>
<p>
默认值:None</p>
<p>
link_after</p>
<p>
(字符串)(可选)显示在每个菜单链接文本后的文本。</p>
<p>
默认值:None</p>
<p>
items_wrap</p>
<p>
(字符串)(可选)替换 ul 的 class 属性。</p>
<p>
默认值:None</p>
<p>
depth</p>
<p>
(整形)(可选)</p>
<p>
显示菜单的深度,当数值为 0 时显示所有深度的菜单。</p>
<p>
默认值:0</p>
<p>
walker</p>
<p>
(对象)(可选)菜单的结构对象。</p>
<p>
默认值:new Walker_Nav_Menu</p>
<p>
例子</p>
<div>
<div>
<div id="highlighter_378987">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code><?php wp_nav_menu( </code><code>array</code><code>( </code><code>'theme_location'</code> <code>=> </code><code>'header_menu'</code><code>, </code><code>'container'</code> <code>=> false, </code><code>'items_wrap'</code> <code>=> </code><code>'<ul id="topmenu">%3$s</ul>'</code><code>, </code><code>'fallback_cb'</code> <code>=> </code><code>'Bing_menu_null_fallback'</code> <code>) ); ?></code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
其它</p>
<p>
此函数位于:wp-includes/nav-menu-template.php</p>
頁:
[1]