【问题标题】:where do I find the file in wordpress that I can edit the menu?我在哪里可以在 wordpress 中找到可以编辑菜单的文件?
【发布时间】:2010-12-10 01:32:45
【问题描述】:

我希望将 javascript 鼠标悬停状态添加到导航中,以使子级仅在父级处于活动状态时出现。我

我相信这是 javascript:

 <?php wp_nav_menu( array('container' => '', 'container_class' => '', 'menu_class' => '', 'menu_id' => 'menuhead', 'sort_column' => 'menu_order', 'theme_location' => 'primary' ) ); ?>

任何帮助都会很棒。

网站:http://svadsi.info/

【问题讨论】:

    标签: javascript wordpress navigation


    【解决方案1】:

    这有点令人毛骨悚然吧?

    显然没有人在这里阅读实际问题。

    问题是:我在哪里可以找到可以编辑菜单的 wordpress 文件?

    不要告诉我怎么做。那么,在哪里可以找到构成 Wordpress 中默认菜单的实际代码?

    在我的版本中,代码位于:nav-menu-template.php

    【讨论】:

      【解决方案2】:

      您希望子页面链接仅在显示父页面时出现?

      您看过有关该函数的文档吗? http://codex.wordpress.org/Function_Reference/wp_nav_menu

      还有一个使用 WP3 菜单的教程: http://justintadlock.com/archives/2010/06/01/goodbye-headaches-hello-menus

      【讨论】:

      • 您好,感谢您的帮助。我是 javascript 和 PHP 的新手,所以我在定位代码以进行编辑时遇到问题。
      【解决方案3】:

      您发布的代码是 PHP,而不是 JavaScript。

      您为什么不使用不显眼的事件处理程序来实现这一点?

      无需接触 WordPress 糟糕的代码:P

      更新

      这里有一些代码可以查看它。如果您不确定,请在关键字旁边搜索 javascript

      我非常确定 WordPress 使用 jQuery。

      $(function() {
      
         $('#menu > li').hover(function() {
             $(this).find('ul').show();
         }, function() {
             $(this).find('ul')hide();
         };
      
      });
      

      此外,在没有库的情况下了解 JavaScript 将有助于您进行调试和一般编码。

      这段代码类似于jQuery。

      window.onload = function() {
          var menu = document.getElementById('menu');
      
          var children = menu.childNodes;
      
          for (var i = 0, childrenLength = children.length; i < childrenLength; i++) {
      
             if (children[i].nodeType === 3) {
                 continue;    
             }
              
             var subMenu = children[i].getElementsByTagName('ul')[0];
      
             children[i].onmouseover = function() {
                 console.log('d');
                 subMenu.style.display = 'block';
             }
      
             children[i].onmouseout = function() {
                 subMenu.style.display = 'none';
             }
      
          }
      
      }
      

      See it on jsFiddle.

      或者,如果您正确设置了 HTML,则可以只使用 CSS。

      #menu li ul {
         display: none;
      }
      
      #menu li:hover ul {
         display: block;
      }
      

      【讨论】:

      • 嗨,Alex,我是 javascript 新手,不知道如何添加事件处理程序或什么文件。所有的 wordpress 都让我感到有些困惑,因为一切都是动态的,而且我不确定如何找到要修改的代码。你知道它在哪里吗?
      • @Meganlee1984 您的 JavaScript 可以在任何地方,只要它最终出现在您要修改的 HTML 旁边的页面上。我将更新我的答案作为一个开始 - 看看,然后做一些进一步的研究,你会明白的:)
      • 嗨,Alex,我无法让它为我工作,所以我一直在尝试实现这个:
      【解决方案4】:

      现在可能有所不同,但是当我设计我的 wordpress 时,所有导航都在 header.php 文件中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-30
        • 1970-01-01
        相关资源
        最近更新 更多