私はレスポンシブテーマを使用するWordpress(Buddypress付き)アプリケーションです。ただし、画面の幅が768px未満の場合は、メニューを選択ボックスのドロップダウンメニューに変更しました。
これを行う私のアイデアを以下に示します。これは、2つのwp_nav_menuを使用して実行されます。1つは(ウォーカーの助けを借りて)メニューを選択ドロップダウンメニューとして作成します(もちろん、response.cssの助けを借りて)。
しかし、私はここで問題があり、助けが必要です:
選択ボックスのメニューは正しく見えますが、メニューのオプションを変更しても実際には何も起こりません(つまり、ページは変更されません)。どうして?
header.php:
<div id="navigation" role="navigation">
<?php
<?php
wp_nav_menu( array(
'container' => false,
'menu_id' => 'nav',
'theme_location' => 'primary',
'fallback_cb' => 'bp_dtheme_main_nav' )
);
wp_nav_menu(array(
'container' => false,
'menu_id' => 'nav',
'theme_location' => 'primary', // your theme location here
'walker' => new Walker_Nav_Menu_Dropdown(),
'items_wrap' => '<select>%3$s</select>',
'fallback_cb' => 'bp_dtheme_main_nav'
));
class Walker_Nav_Menu_Dropdown extends Walker_Nav_Menu{
function start_lvl(&$output, $depth){
$indent = str_repeat("\t", $depth);
}
function end_lvl(&$output, $depth){
$indent = str_repeat("\t", $depth);
}
function start_el(&$output, $item, $depth, $args){
$item->title = str_repeat(" ", $depth * 4).$item->title;
parent::start_el(&$output, $item, $depth, $args);
$output = str_replace('<li', '<option', $output);
}
function end_el(&$output, $item, $depth){
$output .= "</option>\n";
}
} ?>
</div>
編集:レンダリングされた選択オプションに値が含まれていないことに気付いたので、リダイレクト用のオプション値を取得できません。コードに明らかに問題がありますが、何ですか?