“%1 $ s”和“%2 $ s”到底是什么? (任何人都可以用外行的术语解释吗?)
#1 楼
'items_wrap'
的参数wp_nav_menu()
默认为:'<ul id="%1$s" class="%2$s">%3$s</ul>'
使用
sprintf()
解析的aa模板: >编号的占位符– %1$s
,%2$s
,%3$s
–引用sprintf()
中第一个参数之后的参数。百分号标记占位符,位置的数字和类型s
表示应将其视为字符串。除非您确实知道要做什么,否则请勿更改类型。 :)
如果设置了
$wrap_id
,则它是参数'menu_id'
;否则,它是'menu-' . $menu->slug
。它设置了,否则为空。$wrap_class
是菜单的内部内容的字符串。假设您不需要
'menu_class'
。只需省略第二个字符串:$nav_menu .= sprintf(
$args->items_wrap
, esc_attr( $wrap_id ) // %1$s
, esc_attr( $wrap_class ) // %2$s
, $items // %3$s
);
如果不需要
$items
和class
,并且想要另一个容器(因为使用了自定义的助步器):wp_nav_menu( array( 'items_wrap' => '<ul id="%1$s">%3$s</ul>' ) );
要点是:您必须使用
class
中给出的替换编号。 id
始终是项目列表。
评论
感谢您尝试解释。我有点看得出来,但对我来说却没有用。我想在我的li项目中添加一个类。您似乎对每个项目都使用ul吗?我在代码中也看不到任何sprintf,因此不清楚。
–降落
16年9月9日在12:31
@landed这是针对整个菜单的,而不是针对每个项目的。请使用我们的搜索,我们已经为您的问题提供了解决方案。
– fuxia♦
2016年9月9日下午13:27
我确实在网上搜索,其他人遇到了相同的问题,我需要扩展walker类并在其中添加我的html,这对我来说还可以,但是我不得不从旧类中复制很多代码,并重命名并更改它,然后设置使用我的自定义沃克类的菜单。谢谢
–降落
16 Sep 10'在17:29
我参加聚会可能有点晚,但是如果您想在items_wrap中引入文字,您会如何?
– henrywright
16 Sep 19'在12:42
@henrywright首先翻译这些值,然后将它们传递给字符串。
– fuxia♦
16-09-19在12:59