Wp_nav_menu'nun “items_wrap” argümanı için herhangi bir docs?


41

Wp_nav_menu kullanıyorum ve alt düzey açılanlar için özel çıktı oluşturmaya çalışıyorum. "İtems_wrap" argümanına rastladım, ancak ne olduğu, nasıl çalıştığı ve onunla ne gibi şeyler yapılabileceği hakkında çok fazla bilgi yok.

Tam olarak " % 1 $ s " ve " % 2 $ s " nedir? (Herkes bunu layman'ın terimleriyle açıklayabilir mi?)

Yanıtlar:


56

Parametresi 'items_wrap'için wp_nav_menu()için varsayılan:

'<ul id="%1$s" class="%2$s">%3$s</ul>' 

Bu ayrıştırılan aa şablonusprintf() :

$nav_menu .= sprintf( 
    $args->items_wrap
,   esc_attr( $wrap_id )    // %1$s
,   esc_attr( $wrap_class ) // %2$s
,   $items                  // %3$s
);

Sayılı tutucuları - %1$s, %2$s, %3$s- bağımsız değişkenler bakınız sonra ilk argüman sprintf(). Yüzde işareti bir yer tutucuyu işaretler, konum numarası ve türü sbir dize olarak görülmesi gerektiği anlamına gelir.
Ne yaptığınızı gerçekten bilmiyorsanız türünü değiştirmeyin. :)

  • $wrap_id'menu_id'Eğer ayarladıysanız parametredir , yoksa öyledir 'menu-' . $menu->slug.
  • $wrap_class'menu_class'Eğer ayarladıysanız parametredir , yoksa boştur.
  • $items menünün iç içeriğinin bir dizesidir.

İhtiyacınız olmadığını söyleyelim class. Sadece ikinci dizgiyi atlayın:

wp_nav_menu( array( 'items_wrap' => '<ul id="%1$s">%3$s</ul>' ) );

Ve ihtiyacınız yoksa classve idbaşka bir kap istiyorsanız ( özel bir yürüteç kullandığınız için ):

wp_nav_menu( array( 'items_wrap' => '<div>%3$s</div>' ) );

Ana nokta şudur: 'de verilen değiştirmeler için sayıları kullanmanız gerekir wp_nav_menu(). %3$sher zaman öğe listesidir.


Açıklamaya çalıştığın için teşekkürler. Bunu görüyorum ama benim için işe yaramıyor. Li eşyalarıma bir sınıf söylemek istiyorum. Her ürün için ul kullanıyor gibi görünüyorsun? Benim kodumda da herhangi bir sprintf göremiyorum, bu yüzden belli değil.
indi

1
@landed Bu, her öğe için değil , tüm menü içindir. Lütfen aramamızı kullanın, sorununuz için mevcut çözümlerimiz var.
fuxia

Web’de arama yaptım ve diğerleri walker sınıfını genişletmek ve html'imi eklemek için gereken aynı sorunu çözdü ama benim için tamam çalıştı ancak eski sınıftan çok fazla kod kopyalamak ve yeniden adlandırmak ve değiştirmek zorunda kaldım. Özel walker sınıfımı kullanmak için kullanacağım menü. Teşekkürler
indi

Partiye biraz geç kalmış olabilirim ancak metinleri tanıtmak isteseydiniz items_wrapnasıl olurdu?
henrywright 19:16

@ henrywright Önce değerleri çevir, sonra dizgeye ilet.
fuxia

0

Topladığımdan sonra bir çıktı alır ve li'ye menü adı ile bir kimlik ve sınıf verir. Yani, belirli bir menüyü stillendirmek istediğinizde, stillendirmek istiyorsanız onun kimliğini ve sınıfını kapın. 1 ve 2 sadece farklı bir çıktı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.