it-swarm.asia

wp_nav_menu () özel konteyner ve container_id

Bugün ilk Wordpress temam üzerinde çalışmaya başladım ve şimdiye kadar çok eğlenceli oldu. Ancak, wp_nav_menu () 'ı istediğimi yapmakta zorluk çekiyordum.

İşte istediğim şey:

<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>

Dokümantasyona bakarak, aşağıdaki çağrımı istediğimi yapmasını beklerdim:

<?php wp_nav_menu(array( 'container' => 'nav', 'container_id' => 'topnav' )); ?>

Fakat bunun yerine şunu anlıyorum:

<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>

Bana göre, benim özel parametrelerim, wp_nav_menu() dosyasındaki çıktılar tamamen aynı olduğundan göz ardı ediliyor gibi görünüyor. Bunu etkinleştirmek için açmam gereken bir şey var mı, yoksa başka bir şeyler mi oluyor?

DÜZENLE

Tuhaf bir şekilde, eğer menu_class değiştirirsem, div'in sınıfını değiştirir (div'in konteyner olmasını beklerdim) ancak menu_id değerini değiştirmek hiçbir şey yapmaz.

EDIT 2

Nav-menu-template.php dosyasına girip, container, container_id, container_class, menu_id için varsayılanları değiştirmek bile bir şey yapmaz. Menu_class öğesini yyy olarak değiştirmek, div'nin sınıfını menüden yyy olarak değiştirir.

3
Tom Savage

kaydetme sorunu yaşadım: çünkü yönetici wordpressinde menüyü oluşturmazsanız geri dönüş yöntemi kullanın ve tüm aktif sayfalardan menüyü yaratırsanız ... ve eğer bu olursa wp_nav_menu'daki seçenekler kullanılmaz. .

öyleyse: yönetici menüsünde sadece menüyü yaratın ve sarmalayıcı etiketini "nav" olarak değiştirin

6
user2802

Öncelikle, yerel işlevleri kullanarak WordPress'in her tür <nav> öğesini çıkarmasını sağlayamazsınız. <nav>, bir HTML5 etiketidir ve WordPress, XHTML çıktısı üretmek üzere oluşturulmuştur ... yani hiçbir <nav> öğesi yoktur.


Edit: Görünüşe göre, işlev nav__ izin veriyor ... ... ancak WordPress çekirdeğinin geri kalanının hala HTML5 değil, XHTML çıktısı almak için oluşturulduğunu aklınızda bulundurun ... sitenizin doğru şekilde doğrulandığından emin olun .


Bu referansı kaldırmayı deneyin ... 'container_id' => 'topnav' talimatınızı dikkate almayan hataya neden olabilir. Eğer işler nav referansı olmadan doğru çalışıyorsa, şunlara sahip olmalısınız:

<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>
1
EAMann
1
hakre

birileri hala bunu çözmek istiyorsa emin değilim - ama sadece cevabı kendim bulmaya çalışıyorum - çözümümü paylaşacağımı düşündüm :)

Ayrıca <div> öğesi yerine <nav> özelliğini kullanmak istedi ve bu sayfada <div> 'i kaldırarak çözdü, wordpress codex:http://codex.wordpress.org/ İşlev_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' );
?>

Functions.php dosyama eklendi, tema dosyasını <nav> etiketiyle işaretledim & hepsi benim için iyi çalıştı;) umarım bu yardımcı olur :)

0
user3160