【问题标题】:Change static nav menu to wordpress dynamic menu将静态导航菜单更改为 wordpress 动态菜单
【发布时间】:2013-11-05 03:23:31
【问题描述】:

我正在尝试将我的静态导航菜单转换为 WP 动态导航。

这就是我所拥有的:

     <nav>
         <ul id="menu">

            <?php 


                $pages = array( 'index.php' => 'Home', 'services.php' => 'Services', 'sitemap.php' => 'Calculators', 'about.php' => 'About'
                , 'contact.php' => 'Contact' );

                $query = $_SERVER['PHP_SELF'];
                    $path = pathinfo( $query );
                    $selected = $path['basename'];

                foreach( $pages as $url => $title ) {
                   $li = '<li ';
                   if( $url === 'index.php' ) {
                       $li .= 'class="alpha"';
                   } else if ( $url === 'contact.php' ){
                       $li .= 'class="omega"';
                   }

                   if( $selected == $url ) {
                       $li .= 'id="menu_active"';
                   }
                   $li .= '><a href="' . $url . '"><span><span>' . $title . '</span></span></a></li>';
                   echo $li;
                }
            ?>

        </ul>
    </nav>

但我读过我需要使用这个?

                    <?php wp_nav_menu( array( 
                        'theme_location' => 'primary',
                        'container' => false,
                        'menu_class' => 'menu'
                    ) ); ?>

我真的不明白,也不知道如何实现?有任何想法吗?我真的坚持这一点,所以非常需要和感谢帮助。谢谢。

【问题讨论】:

标签: php html css wordpress


【解决方案1】:
// register this menu to function.php<br>
register_nav_menu( 'top', __( 'Top Menu', 'themify' ) );

现在从Appearance -&gt; Menus 生成新菜单并将这个新菜单添加为顶部菜单。

//call menu to header.php<br>
<div class="top-header">

    if (has_nav_menu('top')) {<br>
      wp_nav_menu( array('theme_location' => 'top' ) );<br>
     }

</div>

【讨论】:

    【解决方案2】:
                <?php
                $defaults = array(
                    'theme_location'  => '',
                    'menu'            => '',
                    'container'       => false,
                    'container_class' => '',
                    'container_id'    => '',
                    'menu_class'      => 'menu',
                    'menu_id'         => '',
                    'echo'            => true,
                    'fallback_cb'     => 'wp_page_menu',
                    'before'          => '',
                    'after'           => '',
                    'link_before'     => '',
                    'link_after'      => '',
                    'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
                    'depth'           => 2,
                    'walker'          => ''
                    );
                wp_nav_menu( $defaults );
                ?>
    

    试试这个。这将使用您在 Wordpress 中设置的默认菜单。您也可以指定非默认菜单的菜单名称。这会将菜单项包装在 &lt;ul&gt;&lt;/ul&gt; 标记中。

    【讨论】:

    • 嗯,谢谢,但我的问题是
    • 标签,我有诸如 menu_active 之类的 id 以及 alpha 和 omega 类
  • Wordpress 添加了自己的活动类 - 使用这些。
  • @ChrisHerbert 如何使用活动课程?
  • 当前菜单项&lt;li&gt; 将具有.current-menu-item 类。
  • 【解决方案3】:

    你可以试试这个:

    wp_nav_menu( array( 'container' => 'ul', 'menu_class' => 'menu', 'depth' => 2,'theme_location' => 'primary' ));
    

    并且还在functions.php中编写如下代码:

    if ( ! function_exists( 'nav_setup' ) ):
    function nav_setup() {
    
    // This theme uses wp_nav_menu() in one location.
    register_nav_menus( array(
        'primary' => __( 'Primary Navigation', 'StreetCoder' ),
    ) );
    
    }
    

    尝试使用firebug,你会在li标签中找到一些类,即li ul li中的current-menu-itemsub-menu,父级current-menu-parent中的current-menu-parent一旦你点击了子项,current-menu-ancestor在子li等. 将您的 css 属性转移到这些类中。

    此外,如果你想为特定的 li 包含特定的类,所以请转到Appearance&gt;menus,你会在右上角找到一个选项,即“屏幕选项”,点击那里。面板将被展开,然后选中“显示高级菜单属性”下的“CSS 类”选项。现在,从右侧面板展开菜单后,您将找到一个输入字段“CSS 类(可选)”。只需将您的特定课程放在那里即可。 面板。

    我希望这一切都适用于菜单。 :)

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签