将静态导航菜单更改为wordpress动态菜单

时间:2013-11-05 03:23:32

标签: php html css wordpress

我正在尝试将静态导航菜单转换为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'
                    ) ); ?>

我真的没有得到它,也没有如何实现这个?有任何想法吗?我真的很困惑,所以非常需要和赞赏。感谢。

2 个答案:

答案 0 :(得分:0)

            <?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中设置的默认菜单。您也可以指定非默认菜单的菜单名称。这会将菜单项包装在<ul></ul>标记中。

答案 1 :(得分:0)

你可以试试这个:

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标签中的一些类,current-menu-itemsub-menu li ul li,父current-menu-parent li子项目,子项目中的current-menu-ancestor等。将您的css属性转移到这些类中。

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

menu panel

我希望这一切都能与菜单配合使用。 :)