最近在开发Wordpress的时候,有几个小地方刚开始没搞清楚。
1. message的取得方法
代码中
__('Log Out', 'frontend-user-admin') 这样两个下划线的取得方法
_e('Log Out', 'frontend-user-admin')
刚开始没搞清这个区别。实际上_e()函数是echo,也就是print消息。而__()函数是返回这个消息的字符串。
2. nav menu的部分。
在header.php文件中有如下的记载:wp_nav_menu(array('theme_location' => 'headernav')
简单调用这个方法就能生产header菜单。真的厉害。
问题是我想在自动的菜单里面加动态加一个菜单。用字符串替换方式怎么弄也不行。
print str_replace("</ul></div>", "<li><a href=http://wwww.aaa.com>gotoAAA</a></li></ul></div>" , wp_nav_menu(array('theme_location' => 'headernav'))
最后在查看代码发现wp_nav_menu(array('theme_location' => 'headernav')函数是直接打印html代码的,并不返回任何东西。
参考官方文档:http://codex.wordpress.org/Function_Reference/wp_nav_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' => ,
'items_wrap' => '<ul id=\"%1$s\" class=\"%2$s\">%3$s</ul>',
'depth' => 0,
'walker' => );
?>
Parameters
-
$theme_location
-
(
string) (
optional) the location in the theme to be used--must be registered with
register_nav_menu() in order to be selectable by the user
- Default: None
-
$menu
-
(
string) (
optional) The menu that is desired; accepts (matching in order) id, slug, name
- Default: None
-
$container
-
(
string) (
optional) Whether to wrap the ul, and what to wrap it with. Allowed tags are
div and
nav. Use
false for no container e.g.
container => false
- Default: div
-
$container_class
-
(
string) (
optional) the class that is applied to the container
- Default: menu-{menu slug}-container
-
$container_id
-
(
string) (
optional) The ID that is applied to the container
- Default: None
-
$menu_class
-
(
string) (
optional) CSS class to use for the containing div element which forms the default menu, or the ul element when a custom menu is configured in the admin interface
- Default: menu
-
$menu_id
-
(
string) (
optional) The ID that is applied to the ul element which forms the menu
- Default: menu slug, incremented
-
$echo
-
(
boolean) (
optional) Whether to echo the menu or return it. For returning menu use '0'
- Default: true
-
$fallback_cb
- ( string) ( optional) If the menu doesn't exist, the fallback function to use. Set to false for no fallback.
Note: passes $args to the custom function.
-
- Default: wp_page_menu
-
$before
-
(
string) (
optional) Output text before the <a> of the link
- Default: None
-
$after
-
(
string) (
optional) Output text after the </a> of the link
- Default: None
-
$link_before
-
(
string) (
optional) Output text before the link text
- Default: None
-
$link_after
-
(
string) (
optional) Output text after the link text
- Default: None
-
$items_wrap
-
(
string) (
optional) Whatever to wrap the items with an ul, and how to wrap them with
- Default: None
-
$depth
-
(
integer) (
optional) how many levels of the hierarchy are to be included where 0 means all
- Default: 0
-
$walker
-
(
object) (
optional) Custom walker object to use (Note: You must pass an actual object to use, not a string)
- Default: new Walker_Nav_Menu
最后参考这个文档后改一下就好了。
print str_replace("</ul></div>", "<li><a href=http://wwww.aaa.com>gotoAAA</a></li></ul></div>" , wp_nav_menu(array('theme_location' => 'headernav', 'echo' => false))