我正在尝试向WordPress管理栏添加一个新菜单项。子菜单项包含用于切换主题的选择下拉列表。在Firefox中,使用href => false
它生成<a href="">
当我点击select时,它重新加载了页面。我把它改成<a href="#">
. 修复了单击“选择”时页面重新加载的问题。。。但是javascript不起作用。
代码本身在Mac上的Chrome和Safari中运行良好。我还没有在Windows上测试IE或任何浏览器。在Mac上的Firefox中,它什么都不做。
以下是插件生成的代码:
<li id="wp-admin-bar-switch_themes" class="menupop">
<a href="#"><span>Switch Themes</span></a>
<ul>
<li id="wp-admin-bar-abstractambienceantisocialapertureapzauldbackstagebig-easybiznizzbloggingstreamboastbold-newsbusy-beecaffeinatedcanvascanvas-buddypress-betachapterscinchcity-guidecodacoffee-breakcontinuumcrispcush" class="">
<a href="#">
<select name="themeswitcher" onchange="location.href=this.options[this.selectedIndex].value;" style="color: #000; text-shadow: none;">
<option value="http://themes.fusionized.com?wptheme=Abstract" style="color: #000; text-shadow: none;">Abstract</option>
<option value="http://themes.fusionized.com?wptheme=Ambience" style="color: #000; text-shadow: none;">Ambience</option>
</select>
</a>
</li>
</ul>
</li>
生成管理栏项目的代码没有什么特别之处。。。
$wp_admin_bar->add_menu( array( \'id\' => \'switch_themes\', \'title\' => __( \'Switch Themes\', \'textdomain\' ), \'href\' => \'#\' ) );
$wp_admin_bar->add_menu( array( \'parent\' => \'switch_themes\', \'title\' => $theme_switcher->theme_switcher_markup(\'dropdown\'), \'href\' => \'#\' ) );
SO网友:Jan Fabry
如果要将内容添加到<a>
标签,您可以在[\'meta\'][\'html\']
论点因此,您的代码如下所示:
$wp_admin_bar->add_menu( array(
\'parent\' => \'switch_themes\',
\'meta\' => array(
\'html\' => $theme_switcher->theme_switcher_markup( \'dropdown\' ),
),
\'href\' => \'#\',
\'title\' => \' \', // An empty title will not be accepted
\'id\' => \'wpse17434_child\', // If the title is empty, you need to specify the ID yourself
) );
这将生成一个丑陋的空
<a>
在下拉列表上方阻止,但可以使用正确的样式隐藏此内容。
您是否考虑过不使用下拉菜单,而只使用子菜单来列出不同的主题?这将更符合当前的菜单栏样式。