
Custom WordPress Menu (wp_nav_menu) Hk.
8
●345
- 23-04-2018, 14:20:08Merhabalar, kendim WordPress ile tema giydirdim. Daha doğrusu yapmaya çalıştım. Şu an header da wp_nav_menu olayını kullanarak bu hale kadar getirdim. Ancak Merhaba Dünya! menüsü altındaki iki menünün css'lerini değiştirmem gerekiyor. Bunun için ne yapabilirim? Jquery ile cssleri değiştirebilmiştim (yani istediğim gibi olmuştu) ancak, jquery de sayfa yüklendikten sonra çalışıyor. Bu yüzden ilk önce bu hali (yani yukardaki resimdeki hali) yüklenip sonra cssler değişiyor. Benim direkt kodlardan değiştirebileceğim bir yol var mıdır? Yardımlarınıza ihtiyacım var.

- 23-04-2018, 14:44:33uckan adlı üyeden alıntı: mesajı görüntüle
<nav class="collapse"> <ul class="nav nav-pills" id="mainNav"> <li class="dropdown"><a class="dropdown-item dropdown-toggle" href="index.html">Home </a> <ul class="dropdown-menu"> <li class="dropdown-submenu"><a class="dropdown-item" href="index-classic.html">Classic</a> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="index-classic.html">Classic - Original</a></li> </ul> </li> </ul> </li> <li class=""><a class="nav-link" href="demos.html">Demos </a></li> </ul> </nav>Ana şablon bu şekilde olmalı hocam. Buna uydurmaya çalışıyorum.
wp_nav_menu kısmında da şunları yazdım.
<nav class="collapse"> <?php wp_nav_menu( array( 'theme_location' => 'menu-1', 'container' => 'ul', 'menu_id' => 'mainNav', 'menu_class' => 'nav nav-pills', ) ); ?> </nav>
Tabi bu wp_nav_menu yukardaki ekran görüntüsündeki gibi veriyor. Diğer cssleri görmüyor malum.
@uckan; hocam biraz acemilik var inşAllah istediğiniz şekilde yollamışımdır kodları? Şimdiden kusura bakmayın. - 23-04-2018, 15:16:10functions.php'ye
class Main_Walker_Nav_Menu extends Walker_Nav_Menu { function start_lvl( &$output, $depth ){ //ul $indent = str_repeat("t",$depth); $submenu = ($depth > 0) ? ' dropdown-menu' : ''; $output .= "n$indent<ul class="dropdown-menu$submenu">n"; } function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ){ //li a span $indent = ( $depth ) ? str_repeat("t",$depth) : ''; $li_attributes = ''; $class_names = $value = ''; $classes = empty( $item->classes ) ? array() : (array) $item->classes; $classes[] = ($args->walker->has_children) ? 'dropdown' : ''; $classes[] = ($item->current || $item->current_item_anchestor) ? 'active' : ''; $classes[] = 'menu-item-' . $item->ID; if( $depth && $args->walker->has_children ){ $classes[] = 'dropdown-submenu'; } $class_names = join(' ', apply_filters('nav_menu_css_class', array_filter( $classes ), $item, $args ) ); $class_names = ' class="' . esc_attr($class_names) . '"'; $id = apply_filters('nav_menu_item_id', 'menu-item-'.$item->ID, $item, $args); $id = strlen( $id ) ? ' id="' . esc_attr( $id ) . '"' : ''; $output .= $indent . '<li' . $id . $value . $class_names . $li_attributes . '>'; $attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr($item->attr_title) . '"' : ''; $attributes .= ! empty( $item->target ) ? ' target="' . esc_attr($item->target) . '"' : ''; $attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr($item->xfn) . '"' : ''; $attributes .= ! empty( $item->url ) ? ' href="' . esc_attr($item->url) . '"' : ''; $attributes .= ( $args->walker->has_children ) ? ' class="dropdown-item dropdown-toggle"' : ''; $attributes .= ( !$args->walker->has_children ) ? ' class="nav-link"' : ''; $item_output = $args->before; $item_output .= '<a' . $attributes . '>'; $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after; $item_output .= ( $depth == 0 && $args->walker->has_children ) ? '</a>' : '</a>'; $item_output .= $args->after; $output .= apply_filters ( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); } }
Menü kodu
<?php wp_nav_menu( array( 'theme_location' => 'geo-header', 'container' => 'ul', 'menu_id' => 'mainNav', 'menu_class' => 'nav nav-pills', 'walker' => new Main_Walker_Nav_Menu(), ) ); ?>
farklı kullanımda sıkıntı çıkarabilir detaylı denemedim, bu örnekten yola çıkarak düzeltebilirsiniz. - 23-04-2018, 15:18:47uckan adlı üyeden alıntı: mesajı görüntüle
Çok teşekkürler hocam ilgi ve alakanıza. Ben de az önce öm atmıştım.
Allah razı olsun.
Hocam oldu ya süpersin tekrardan teşekkür ederim. - 23-04-2018, 16:40:52Hocam bir ricam olacak sizden ama hakkınızı helal edin öncelikle. Her şey yolunda çalışıyor ama ben şunu yaptırabilir miyim burada. Dropdown menu olanların href değerini href="#" yapmak istiyorum. Deneme yanılmalar yaptım ama beceremedim ne yazık ki. :/ Yani böyle bir işlev de ekleyebiliyor muyuz?uckan adlı üyeden alıntı: mesajı görüntüle
- 23-04-2018, 16:53:24
class Main_Walker_Nav_Menu extends Walker_Nav_Menu { function start_lvl( &$output, $depth ){ //ul $indent = str_repeat("t",$depth); $submenu = ($depth > 0) ? ' dropdown-menu' : ''; $output .= "n$indent<ul class="dropdown-menu$submenu">n"; } function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ){ //li a span $indent = ( $depth ) ? str_repeat("t",$depth) : ''; $li_attributes = ''; $class_names = $value = ''; $classes = empty( $item->classes ) ? array() : (array) $item->classes; $classes[] = ($args->walker->has_children) ? 'dropdown' : ''; $classes[] = ($item->current || $item->current_item_anchestor) ? 'active' : ''; $classes[] = 'menu-item-' . $item->ID; if( $depth && $args->walker->has_children ){ $classes[] = 'dropdown-submenu'; } $class_names = join(' ', apply_filters('nav_menu_css_class', array_filter( $classes ), $item, $args ) ); $class_names = ' class="' . esc_attr($class_names) . '"'; $id = apply_filters('nav_menu_item_id', 'menu-item-'.$item->ID, $item, $args); $id = strlen( $id ) ? ' id="' . esc_attr( $id ) . '"' : ''; $output .= $indent . '<li' . $id . $value . $class_names . $li_attributes . '>'; $attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr($item->attr_title) . '"' : ''; $attributes .= ! empty( $item->target ) ? ' target="' . esc_attr($item->target) . '"' : ''; $attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr($item->xfn) . '"' : ''; $attributes .= ! empty( $item->url ) ? ' href="' . esc_attr($item->url) . '"' : ''; if ($args->walker->has_children ) { $attributes .= ! empty( $item->url ) ? ' href="#"' : ''; } $attributes .= ( $args->walker->has_children ) ? ' class="dropdown-item dropdown-toggle"' : ''; $attributes .= ( !$args->walker->has_children ) ? ' class="nav-link"' : ''; $item_output = $args->before; $item_output .= '<a' . $attributes . '>'; $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after; $item_output .= ( $depth == 0 && $args->walker->has_children ) ? '</a>' : '</a>'; $item_output .= $args->after; $output .= apply_filters ( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); } } - 23-04-2018, 16:58:44Çok sağol hocam mantığı az çok kavradım. Allah yardımcın olsun her konuda, Hayırlı işler, bol kazançlar diliyorum.uckan adlı üyeden alıntı: mesajı görüntüle
Allah razı olsun.