Jadi hari ini saya mulai mengerjakan tema Wordpress pertama saya dan sejauh ini sangat menyenangkan. Namun, saya kesulitan mendapatkan wp_nav_menu () untuk melakukan apa yang saya inginkan.
Inilah yang saya inginkan:
<nav id="topnav" class="menu">
<ul>
<li class="current_page_item"><a href="#" title="Home">Home</a></li>
<li class="page_item page-item-2"><a href="#" title="About">About</a></li>
</ul>
</nav>
Melihat dalam dokumentasi, saya mengharapkan panggilan berikut untuk melakukan apa yang saya inginkan:
<?php wp_nav_menu(array( 'container' => 'nav', 'container_id' => 'topnav' )); ?>
Tetapi sebaliknya saya mendapatkan ini:
<div class="menu">
<ul>
<li class="current_page_item"><a href="#" title="Home">Home</a></li>
<li class="page_item page-item-2"><a href="#" title="About">About</a></li>
</ul>
</div>
Bagi saya sepertinya parameter khusus saya diabaikan karena output dari wp_nav_menu()
persis sama. Apakah ada sesuatu yang harus saya nyalakan di suatu tempat untuk mengaktifkan ini atau ada sesuatu yang terjadi?
EDIT
Anehnya, jika saya mengubah menu_class
itu mengubah kelas div (saya harapkan div menjadi wadah) tetapi mengubah menu_id
tidak melakukan apa-apa.
EDIT 2
Bahkan masuk ke nav-menu-template.php dan mengubah default untuk container, container_id, container_class, menu_id tidak melakukan apa-apa. Mengubah menu_class ke yyy akan mengubah kelas div dari menu ke yyy.
saya punya masalah simpan: itu karena jika Anda tidak membuat menu di admin wordpress menggunakan metode mundur dan membuat menu dari semua halaman aktif ... dan jika ini terjadi maka opsi dari wp_nav_menu tidak digunakan .. .
jadi: cukup buat menu di admin dan kamu bisa mengganti wrapper-tag menjadi "nav"
Pertama-tama, Anda tidak akan bisa mendapatkan WordPress untuk menghasilkan segala jenis elemen <nav>
menggunakan fungsi asli. <nav>
adalah tag HTML5, dan WordPress dibuat untuk menghasilkan output XHTML ... yaitu tidak ada elemen <nav>
.
Edit: Rupanya fungsi tersebut memungkinkan nav
... tetapi perlu diingat bahwa sisa inti WordPress masih dibangun untuk menghasilkan XHTML, bukan HTML5 ... hati-hati untuk memastikan situs Anda divalidasi dengan benar .
Coba hapus referensi itu ... itu mungkin menyebabkan kesalahan yang mengabaikan instruksi 'container_id' => 'topnav'
Anda. Jika semuanya berjalan dengan baik tanpa referensi ke nav
Anda harus memiliki ini:
<div id="topnav" class="menu">
<ul>
<li class="current_page_item"><a href="#" title="Home">Home</a></li>
<li class="page_item page-item-2"><a href="#" title="About">About</a></li>
</ul>
</div>
Menu API rusak sebagian, Anda tidak bisa mengandalkan output. Ada beragam tiket dalam trac mengenai hal itu, saya hanya melakukan pencarian cepat, tetapi mungkin solusi untuk masalah Anda dijelaskan di salah satunya:
tidak yakin apakah ada yang masih mencari untuk menyelesaikan ini - tetapi baru saja di sini mencoba menemukan jawabannya sendiri - saya pikir saya akan membagikan solusi saya :)
Juga ingin menggunakan <nav> alih-alih elemen <div> dan menyelesaikannya dengan menghapus <div>, seperti yang dinyatakan pada halaman ini, wordpress codex:http://codex.wordpress.org/ Function_Reference/wp_nav_menu :
<?php
function my_wp_nav_menu_args( $args = '' )
{
$args['container'] = false;
return $args;
} // function
add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );
?>
Ditambahkan ke file functions.php saya, menandai file tema dengan tag <nav> & semua berfungsi dengan baik untuk saya;) semoga ini membantu :)