xtremeMedlem sedan juli 20002 056 inlägg Jag har följande kod i Wordpress som genererar en horisontell meny
<? php wp_nav_menu (array ('theme_location' => 'header-menu'));?>
Eftersom sidan ska vara mobilvänlig vill jag att menyn ska vara i form av en drop-down i stället.
Har provat lite olika varianter men får det inte att fungera. Problemet är vad jag ska ska ha i option value="".
<select name="blog-dropdown" onChange='document.location.href=this.options[this.selectedIndex].value;'>
<option value="<?php bloginfo('home') ?>">Hem</option>
<option value="" <?php wp_nav_menu( array( 'theme_location' => 'header-menu' ) ); ?></option> /* Den här är problemet */
</select>
Jag får fram länknamnet i listan men inget händer när jag väljer det.
Nate.AMedlem sedan mars 2006296 inlägg Hej!
Jag tror man gör det bäst med en "Custom Walker" class.
ex.
selectmenu_walker.class.php
class selectmenu_walker extends Walker
{
/**
* @see Walker::$tree_type
* @var string
*/
var $tree_type = array( 'post_type', 'taxonomy', 'custom' );
/**
* @see Walker::$db_fields
* @var array
*/
var $db_fields = array( 'parent' => 'menu_item_parent', 'id' => 'db_id' );
function start_el(&$output, $item, $depth, $args)
{
$classes = empty( $item->classes ) ? array() : (array) $item->classes;
$selected = in_array('current-menu-item', $classes) ? "selected" : "";
$indent = ( $depth ) ? str_repeat( "-", $depth ) : '';
$output .= '<option ' . $selected . ' value="' . esc_attr( $item->url ) . '">' . $indent . esc_attr( $item->title ) .'</option>';
}
}
I din template fil
include('din_sokvag/selectmenu_walker.class.php');
wp_nav_menu( array(
'container' => 'none',
'theme_location' => 'primary',
'walker'=> new selectmenu_walker,
'items_wrap' => '<select id="selectnav-%1$s" class="%2$s">%3$s</select>' ) );