【问题标题】:jQuery Superfish Menu on Wordpress doesn't show upWordpress 上的 jQuery Superfish 菜单不显示
【发布时间】:2013-10-11 03:43:59
【问题描述】:

我正在开发一个 jQuery 'Superfish' 下拉菜单 (Wordpress)。我使用最新版本的 superfish 和 wordpress。问题是,超级鱼让我的菜单不可见……我什么都看不到我的菜单……

functions.php

//Register Superfish
///////////////////////////////////////////////////////////

add_action( 'wp_enqueue_scripts', 'superfish_libs' );  
function superfish_libs()  
{  
    // Register each script, setting appropriate dependencies  
    wp_register_script('hoverintent', get_template_directory_uri() . '/superfish-js/hoverIntent.js');  
    wp_register_script('bgiframe',    get_template_directory_uri() . '/superfish-js/jquery.bgiframe.min.js');  
    wp_register_script('superfish',   get_template_directory_uri() . '/superfish-js/superfish.js', array( 'jquery', 'hoverintent', 'bgiframe' ));  
    wp_register_script('supersubs',   get_template_directory_uri() . '/superfish-js/supersubs.js', array( 'superfish' ));  

    // Enqueue supersubs, we don't need to enqueue any others in this case, as the dependencies take care of it for us  
    wp_enqueue_script('supersubs'); 

    // Register each style, setting appropriate dependencies 
    wp_register_style('superfishbase',   get_template_directory_uri() . '/superfish-css/superfish.css');
    wp_register_style('superfishvert',   get_template_directory_uri() . '/superfish-css/superfish-vertical.css', array( 'superfishbase' )); 
    wp_register_style('superfishnavbar', get_template_directory_uri() . '/superfish-css/superfish-navbar.css', array( 'superfishvert' )); 

    // Enqueue superfishnavbar, we don't need to enqueue any others in this case either, as the dependencies take care of it  
    wp_enqueue_style('superfishnavbar');  
}

//Register jQuery 1.1.3
///////////////////////////////////////////////////////////   

wp_deregister_script('jquery');
if(!is_admin()) { 
     wp_register_script('jquery', get_template_directory_uri() . '/js/jquery-1.1.3.js');
     wp_enqueue_script('jquery');
}

header.php

<div id="wrapper-mainnav">

            <div class="left"></div>
            <div class="content">
                <?php wp_nav_menu(array('theme_location' => 'mainnav', 'menu_class' => 'sf-menu')); ?>
            </div>
            <div class="right"></div>

            <br class="clearer">

            <div class="bottom"></div>

        </div><!--wrapper-mainnav-->

请帮忙,我找不到故障...请告诉我,如果您需要更多信息...

【问题讨论】:

  • 只需尝试将脚本放入页脚并确保您的菜单在那里并且在代码之前显示良好。而 jQuery 1.1.3 可以追溯到时间的开始。
  • 我添加了它,但我有同样的问题。我更新 jquery:wp_deregister_script('jquery'); if(!is_admin()) { wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js'); wp_enqueue_script('jquery'); } 如果我删除 sf-menu 类,它可以工作
  • 您是否要更改 wordpress 菜单的后端?
  • 感谢@VictorWeng 一个愚蠢的错误。我忘了在后端定义菜单。现在它可以工作了......

标签: javascript php jquery wordpress superfish


【解决方案1】:

首先,don't dequeue WordPress bundled jQuery

sf-menu 类添加到&lt;ul&gt; 容器似乎有点困难。它正在应用于上层&lt;div&gt;
我在wp_nav_menu 中尝试了许多变体参数,但均无济于事。

一个简单的解决方案是手动更改它

$mainnav = wp_nav_menu(array('theme_location' => 'mainnav', 'echo' => false );
echo str_replace( '<ul>', '<ul class="sf-menu">', $mainnav );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多