Wordpressでサブメニューを作成するにはいくつかの助けが必要です。 私はそれを使用しようとしましたwp_get_nav_menu_items Wordpressの機能。Wordpressのサブメニュー:ulの子供
私はこのPHP関数を書いています。すべてが正常に動作しますが、私の第2のレベルは私の最初のレベルと同じレベルの通りです:HTMLで
<?php
function fp_menu($menu) {
global $post;
$last = '';
$args = array(
'order' => 'ASC',
'orderby' => 'menu_order',
'post_type' => 'nav_menu_item',
'post_status' => 'publish',
'output' => ARRAY_A,
'output_key' => 'menu_order',
'nopaging' => true,
'update_post_term_cache' => false
);
$items = wp_get_nav_menu_items($menu, $args);
if ($items != '') {
$nav = '';
for ($i=0; $i < count($items); $i++) {
if ($items[$i]->object_id == $post->ID) {
$activeClass = 'active';} else {$activeClass = '';
}
if ($items[$i]->type !== 'custom') {
$nav.= '<li class="'.$activeClass.'"><a href="'.get_permalink($items[$i]->object_id).'" target="'.$items[$i]->target.'">'.$items[$i]->title.'</a></li>';
} else {
$nav.= '<li><a href="'.$items[$i]->url.'" target="'.$items[$i]->target.'">'.$items[$i]->title.'</a></li>';
}
}
return '<ul>'.$nav.'</ul>';
}
}
:
<?php echo fp_menu('main_menu'); ?>
は、残念ながら、すべての私のli
は、私は私のサブメニューを置くことができるか、同じレベルにあります
<nav class="header--nav">
<ul class="header--menu">
<li>
<a href="#">Item level 1</a>
<ul>
<li><a href="#">Item level 2</a></li>
<li><a href="#">Item level 2</a></li>
<li><a href="#">Item level 2</a></li>
</ul>
</li>
<li><a href="#">Item level 1</a></li>
<li><a href="#">Item level 1</a></li>
</ul>
</nav>
もう1つのレベル(追加の「
」と「
」タグなし)を作成できる場所に何も出力していません。それであなたは何を期待していますか? WPのWalker_Nav_Menuクラスなどを使うのではなく、なぜあなた自身で構築しようとしていますか? – CBroe@CBroe Walker_Nav_Menuクラスとは何ですか?そして、どのようにこの作品ですか? – Jandon