我是Twitter Bootstrap,需要在菜单链接的标签中添加data-toggle =“ modal”属性。在搜索大多数结果后,请参考散步Twitter Bootstrap下拉菜单,但是此菜单没有下拉菜单,我只需要添加特定的属性。
接下来,我发现了这一点:在不带插件的菜单项中添加自定义属性,这非常有帮助,因为它出现在WordPress 3.6+中,我们不再需要做长时间的复杂的遍历,而可以使用以下方法:http : //codex.wordpress.org/Plugin_API / Filter_Reference / nav_menu_link_attributes
但是,在运行时,该API参考还很裸露,没有提供示例,并且由于它太新了,因此在Google上很少有对其引用。
我首先尝试了这个:
add_filter( 'nav_menu_link_attributes', 'mywp_contact_menu_atts', 10, 3 );
function pb_contact_menu_atts( $atts, $item, $args )
{
// inspect $item, then …
$atts['data-toggle'] = 'modal';
return $atts;
}
并且确实可以正常工作,但是按预期将属性添加到菜单中的所有a标签。因此,我试图找出如何使用#menu-item-7857 a或此类菜单定位一个菜单项。
有谁知道在哪里可以找到针对菜单项的示例,或者能够确定如何基于以上链接的API参考中的信息?
需要注意的是,我确实找到了以下示例,但它仅针对具有子项的项目,这无济于事,但方向可能正确:
add_filter('nav_menu_link_attributes', function($atts, $item, $args) {
if ( $args->has_children )
{
$atts['data-toggle'] = 'dropdown';
$atts['class'] = 'dropdown-toggle';
}
return $atts;
}, 10, 3);
更新-下面的唯一答案听起来像是在解决问题,但由此无法确定如何实际找到针对我的特定链接的数字以及在可行的示例中在何处/如何添加该条件。添加了评论,但没有收到回复。既然已经有18天了,我想看看是否有赏金会有所帮助。
当我查看要定位的链接的代码时:
<li id="menu-item-7858" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7858"><a href="#" data-toggle="modal">Chat</a></li>
我看到的号码是7858,所以我想也许这就是我应该定位的号码。
但是当我尝试例如:
add_filter( 'nav_menu_link_attributes', 'my_chat_menu_atts', 10, 3 );
function my_chat_menu_atts( $atts, $item, $args ) {
if ( 7857 == $item['ID'] ) {
// inspect $item, then …
$atts['onclick'] = 'SnapEngage.startLink();';
return $atts;
}
}
但是,如果添加该if语句,则一个评论者建议我得到以下错误:
Fatal error: Cannot use object of type WP_Post as array
我假设需要更多代码,但很迷茫。提醒您,如果没有if语句,它可以工作,但是它的目标是所有链接,而不是我要定位的一个链接。