En çok ihtiyaç duyduğunuzda güvenilir WordPress eğitimleri.
WordPress Başlangıç Rehberi
WPB Kupası
25 Milyon+
Eklentilerimizi kullanan web siteleri
16+
Yıllık WordPress deneyimi
3000+
Uzmanlardan WordPress eğitimleri

WordPress Temalarınızda Menü Açıklamaları Nasıl Eklenir

WordPress menü sistemi, menü öğelerine açıklamalar ekleyebileceğiniz yerleşik bir özelliğe sahiptir. Ancak, bu özellik varsayılan olarak gizlidir. Etkinleştirildiğinde bile, bazı kodlar eklenmeden görüntülenmeleri desteklenmez. Çoğu tema, menü öğesi açıklamaları düşünülerek tasarlanmamıştır. Bu makalede, WordPress'te menü açıklamalarını nasıl etkinleştireceğinizi ve WordPress temalarınıza menü açıklamalarını nasıl ekleyeceğinizi göstereceğiz.

WordPress temalarında menü açıklamları nasıl eklenir

Not: Bu eğitim, HTML, CSS ve WordPress tema geliştirme konusunda yeterli bilgiye sahip olmanızı gerektirir.

Menü Açıklamaları Ne Zaman ve Neden Eklemek İstersiniz?

Bazı kullanıcılar, menü açıklaması eklemenin SEO'ya yardımcı olacağını düşünüyor. Ancak, bunları kullanmak istemenizin ana nedeninin sitenizde daha iyi bir kullanıcı deneyimi sunmak olduğunu düşünüyoruz.

Açıklamalar, ziyaretçilere bir menü öğesine tıkladıklarında ne bulacaklarını anlatmak için kullanılabilir. İlgi çekici bir açıklama, daha fazla kullanıcının menülere tıklamasını sağlayacaktır.

Menü Açıklamaları

Adım 1: Menü Açıklamalarını Açın

Görünüm » Menüler'e gidin. Sayfanın sağ üst köşesindeki Ekran Seçenekleri düğmesine tıklayın. Açıklamalar kutusunu işaretleyin.

WordPress'te Menü Açıklamalarını Etkinleştirme

Bu, menü öğelerinizde açıklamalar alanını etkinleştirecektir. Şöyle ki:

Menü öğelerine açıklama alanı eklendi

Artık WordPress menünüzdeki öğelere menü açıklamaları ekleyebilirsiniz. Ancak bu açıklamalar henüz temanızda görünmeyecektir. Menü açıklamalarını görüntülemek için bazı kodlar eklememiz gerekecek.

Adım 2: Walker sınıfını ekleyin:

Walker sınıfı WordPress'teki mevcut sınıfı genişletir. Temel olarak menü öğesi açıklamalarını görüntülemek için bir kod satırı ekler. Bu kodu temanızın functions.php dosyasına ekleyin.

class Menu_With_Description extends Walker_Nav_Menu {
	function start_el(&$output, $item, $depth, $args) {
		global $wp_query;
		$indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
		
		$class_names = $value = '';

		$classes = empty( $item->classes ) ? array() : (array) $item->classes;

		$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
		$class_names = ' class="' . esc_attr( $class_names ) . '"';

		$output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>';

		$attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr( $item->attr_title ) .'"' : '';
		$attributes .= ! empty( $item->target ) ? ' target="' . esc_attr( $item->target ) .'"' : '';
		$attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr( $item->xfn ) .'"' : '';
		$attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) .'"' : '';

		$item_output = $args->before;
		$item_output .= '<a'. $attributes .'>';
		$item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
		$item_output .= '<br /><span class="sub">' . $item->description . '</span>';
		$item_output .= '</a>';
		$item_output .= $args->after;

		$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
	}
}

Adım 3. wp_nav_menu'de Walker'ı Etkinleştirme

WordPress temaları menüleri görüntülemek için wp_nav_menu() fonksiyonunu kullanır. Ayrıca yeni başlayanlar için WordPress Temalarında Özel Gezinme Menüleri Ekleme hakkında bir öğretici yayınladık. Çoğu WordPress teması menüleri header.php şablonuna ekler. Ancak temanızın menüleri görüntülemek için başka bir şablon dosyası kullanmış olması mümkündür.

Şimdi yapmamız gereken, temanızda (büyük olasılıkla header.php'de) wp_nav_menu() fonksiyonunu bulmak ve şu şekilde değiştirmektir.

<?php $walker = new Menu_With_Description; ?>

<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu', 'walker' => $walker ) ); ?>

İlk satırda, daha önce functions.php dosyasında tanımladığımız walker sınıfını kullanması için $walker değişkenini ayarlıyoruz. İkinci kod satırında, mevcut wp_nav_menu argümanlarımıza eklememiz gereken tek ek argüman 'walker' => $walker'dır.

Adım 4. Açıklamaları Biçimlendirme

Daha önce eklediğimiz walker sınıfı, öğe açıklamalarını şu kod satırında görüntüler:

$item_output .= '<br /><span class="sub">' . $item->description . '</span>';

Yukarıdaki kod, menü öğesine bir `
` etiketi ekleyerek satır sonu ekler ve ardından açıklamalarınızı `sub` sınıfına sahip bir span içine alır. Şöyle ki:

<li id="menu-item-99" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="http://www.example.com/about/">About<br /><span class="sub">Who are we?</span></a></li>

Açıklamalarınızın sitenizde nasıl görüneceğini değiştirmek için temanızın stil sayfasına CSS ekleyebilirsiniz. Bunu Twenty Twelve üzerinde test ettik ve bu CSS'yi kullandık.

.menu-item {
border-left: 1px solid #ccc;
}

span.sub { 
font-style:italic;
font-size:small;
}

Bu makaleyi faydalı bulacağınızı ve temanızda menü açıklamalarıyla harika görünen menüler oluşturmanıza yardımcı olacağını umuyoruz. Sorularınız mı var? Aşağıdaki yorumlarda bırakın.

Ek Kaynaklar

WordPress Navigasyon Menüleri Nasıl Stil Verilir

Belirli WordPress Menülerine Özel Öğe Ekleme

Bill Erickson’ın Açıklamalı Menüler

Açıklama: İçeriğimiz okuyucu desteklidir. Bu, bazı bağlantılarımıza tıkladığınızda bir komisyon kazanabileceğimiz anlamına gelir. WPBeginner'ın nasıl finanse edildiğini, neden önemli olduğunu ve bize nasıl destek olabileceğinizi görün. İşte editöryal sürecimiz.

Nihai WordPress Araç Seti

Araç Kitimize ÜCRETSİZ erişim kazanın - her profesyonelin sahip olması gereken WordPress ile ilgili ürün ve kaynaklardan oluşan bir koleksiyon!

Okuyucu Etkileşimleri

51 CommentsLeave a Reply

  1. PHP 8.0 ve üst sürümlerinde bu kritik bir hataya neden olacaktır.

    Bu satırı bulmanız gerekiyor:
    function start_el( $output, $item, $depth, $args ) {

    Bu satırı aşağıdaki gibi değiştirmek hatayı ortadan kaldırmalıdır:
    function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {

    • PHP 8 kullananlar için bunu paylaştığınız için teşekkür ederiz.

      Yönetici

  2. WordPress Temalarımda Menü Açıklamaları Eklemek İçin, bu blogun 1. ve 2. adımlarını yaptım ancak 3. adımdan sonra ilerleyemedim ve toplam değişikliği gerçekleştiremedim.

    • Fonksiyonu temanızda bulamazsanız, temanızın özel desteğiyle iletişime geçmenizi öneririz ve onlar size yardımcı olabilirler.

      Yönetici

  3. Merhaba,
    Max Mega Menu'da ürün kategorisi açıklamasını nasıl devre dışı bırakabilirim?
    Zaten Mega Menu > Genel Ayarlar'a gittim ve Menü Öğesi Açıklamaları'nı devre dışı olarak ayarladım ancak sorun devam ediyor.

    • Eklentinin desteğiyle iletişime geçmek isteyeceksiniz ve ayarın doğru çalışmaması konusunda size yardımcı olabilirler.

      Yönetici

  4. Merhaba.. Lütfen Yardım..
    Kategori başlığı ekleme, kategori başlığı açıklaması kullanmadan nasıl yapılır?

  5. Harika İpucu ama menü açıklamasında html etiketlerini desteklemiyor. Bunu bilen var mı?

    Teşekkürler

  6. Merhaba Millet,

    Açıklamada html etiketlerine izin vermenin bir yolu var mı?
    remove_filter(‘nav_menu_description’, ‘strip_tags’);
    bu benim için çalışmıyor.

    • @Iryna: Kodunu bir yere, örneğin pastebin.com'a yapıştırabilir misin?
      remove_filter()'ı çağırdığın yer, çalışıp çalışmayacağını belirleyecektir – add_filter() çağrısından sonra çağrılmalıdır.
      wp_nav_menu() çağrısından hemen önce çağırmak işe yarayabilir.

  7. teşekkürler... işe yaradı. ancak menü açıklamasında html etiketlerini desteklemiyor.

  8. Zaten takmaya hazır olabilir mi? Bu hack "Twenty Twelve Sürüm: 1.5" temasıyla nasıl çalışacak?
    ? Ve tıpkı wpml eklentisi gibi mi?

  9. Teşekkür ederim, bu gerçekten hızlı resmi almak için kopyala yapıştır yapmak çok yardımcı oldu.

  10. Selam, walker sınıfını functions.php'ye ekledim ancak genesis temasında wp_nav_menu'yu bulamıyorum. Neyi kaçırıyorum? Ne yapacağımı hiç bilmiyorum!?!

  11. Çok iyi açıklıyorsunuz – ayrıntılı ve net. 1 dakika ve menü öğeleri açıklamaları iyi. Teşekkürler!

  12. Bu eğitim için çok teşekkür ederim. Bana tavsiye edildi ve istediğim değişiklikleri yapmak için mükemmel bir şekilde işe yaradı. Ancak, bu değişiklikleri yaparken, açılır alt öğe menülerimi kaybettim. Kod değişikliğinde bunu neyin etkilediği hakkında bir fikriniz var mı?

    Zamanınız ve öğretici için teşekkürler

    • Bu bir CSS sorunu gibi görünüyor, daha spesifik olamadığımız için üzgünüz. Hata ayıklamak için Google Chrome'un geliştirici araçlarını kullanmayı deneyin.

      Yönetici

  13. Menü açıklamalarını uyguladım ve harika çalıştı. Şimdi müşterim açıklamalardan birinin içine satır başı eklememi istiyor. Yönetici panelinden bir satır başı koymayı ve açıklama alanına bir etiket eklemeyi denedim. Ön yüzde görünmüyor. WP bu düzenlemeleri kaldırıyor. Bunu gidermenin bir yolu var mı?

  14. Harika bir öğretici olmuş arkadaşlar, sadece Özel Menü widget'ı kullanılarak görüntülenen özel bir menüye bunu nasıl uygulayacağımı bilmek istiyorum?

  15. Teşekkürler! Yıllardır WordPress üzerinde çalışıyorum ve bunu daha önce hiç duymamıştım. Çalıştığım sitede çok gereksiz oldukları için açıklamaları kaldırmak istiyordum. Nereden geldiklerini her yerde aradım.

    Oh neşe!

  16. çalışıyor!

    ancak php 5.4 için start_el fonksiyonunun wp walker argümanlarını eşleştirmeniz gerekecek:

    function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 )

    ve $item'ı $object ile değiştirin.

  17. Mükemmel. Bu, bir sitede işimi bitirmem gereken şeydi. CSS ile bazı sorunlar yaşadım ama sonunda çözdüm ve çalıştırdım. Harika makaleler için teşekkürler.

  18. Bu benim için mükemmel çalıştı. Sınıf fonksiyonu da mükemmel. Çok teşekkürler!

  19. Aynı şeyi yaratmam gerekiyordu ve tamamen kaybolmuştum.

    Bu işi halletmek için bazı aptalca şeyler yapmayı planlıyordum.

    Tanrı'ya şükür bu gönderiyi buldum ve zamandan ve stresten kurtuldum!

    Bu siteyi çok seviyorum, çok şey öğrendim.

    Burada en kolay şeyleri gösterdiğiniz için çok teşekkür ederim.

    • Span etiketi alt menülerde de görünüyor.

      Orada görünmüyor ama çok garip görünmesine neden olan o kadar yer kaplıyor.

      bunun için bir çözüm var mı??

  20. Bu gerçekten harika bir eğitim ve bunun Thesis 1.8.5'te işe yarayıp yaramayacağını merak ediyordum. Eğer yaramazsa, bir tane sağlayabilirseniz harika olur. Kesinlikle bunu yaymanıza yardımcı olacağım. Beğendim!

  21. Öğreticini takip ettim ve menüme açıklama ekledim. Teşekkürler! Ancak, mobil moddayken menü açılır menüye dönüşüyor ve menü başlığı ile açıklama birbirine bağlanıyor. Örneğin, menü öğem "hakkında" ve açıklama "benim hakkımda daha fazla" ise, mobil sürüm "hakkımdabenim hakkımda daha fazla" gösteriyor. Bunu düzeltebilir miyim?

    • Aynı sorunu yaşadım. Yaptığım şey şu.

      Bunu değiştirdim:
      $description = ! empty( $item->description ) ? ‘<span>’.esc_attr( $item->description ).'</span>’ : ”;

      Buna:
      $description = ! empty( $item->description ) ? '
      '.esc_attr( $item->description ).'' : '';

      En iyi çözüm olduğundan emin değilim ama benim için işe yaradı.

      • Teşekkürler beyler, SVET ve DAVID'in mobil menü ile yaptıklarına rastladım.
        Kod, değişikliğimi değiştirdi, benimki sadece tire ayırıcı ile bir span eklemekti ve masaüstü sorgumda gereksiz olduğu için onu bastırdım.

        $item_output .= ‘ – ‘;

        Yalnızca Masaüstü Sorgumda span'ı display none olarak ayarlayın;
        @media only screen and (min-width: 740px) {
        header #submenu li span.dash { display:none; }

        Umarım yardımcı olur, sorunumu güzelce çözdü.

  22. Harika gönderi – çok net, tam da ihtiyacım olan şeydi ve mükemmel çalıştı. Teşekkür ederim!

  23. Harika öğretici için teşekkürler. Ana adımları iyi yaptım, görebileceğiniz gibi
    http://ueab.ac.ke/demo/index

    Ana Menü Etiketi ile açıklama arasındaki boşluğu nasıl azaltabilirim? Yardımınız için minnettarım.

  24. Harika bir yazı. Daha önce bunu araştırmaya çalıştım ama bulduğum önceki talimatlar bu kadar kolay takip edilemiyordu. functions.php kodunu ekleyebildim, kullandığım tema için farklı olan ancak anlaşılır olan walker sınıfımı başlık dosyamda nasıl değiştireceğimi anladım ve yaklaşık 15 dakika içinde işleri yoluna koydum.

    Eklemek isteyebileceğiniz bir nokta, :last-child özelliğini kullanarak son menü öğesinde sağ kenarlığı nasıl dahil edeceğinizdir.


    .menu-item:last-child { border-right: 1px solid #ccc; }

  25. Walker_Nav_Menu'yu genişletmek yerine, bir filtre sağlansaydı güzel (ve daha kolay) olurdu, örneğin:
    Çekirdek kod şöyle olsaydı:
    $item_output .= apply_filters( ‘walker_nav_menu_description’, $item->description);

    O zaman özel filtre fonksiyonu sadece şunu içerecektir:
    return "" . $description . " ";

Leave A Reply

Yorum bırakmayı seçtiğiniz için teşekkürler. Lütfen tüm yorumların yorum politikamıza göre denetlendiğini ve e-posta adresinizin YAYINLANMAYACAĞINI unutmayın. Lütfen ad alanında anahtar kelime KULLANMAYIN. Kişisel ve anlamlı bir sohbet edelim.