lostyazilim
tr.link

WordPress 3.0 menü özelliğine geçiş

3 Mesajlar 1.663 Okunma
lstbozum
tr.link

MertCanatan MertCanatan WM Aracı Kullanıcı
  • Üyelik 20.11.2010
  • Yaş/Cinsiyet 28 /
  • Meslek
  • Konum
  • Ad Soyad M** C**
  • Mesajlar 554
  • Beğeniler 0 / 8
  • Ticaret 0, (%0)
WordPress’in miladı sayılabilecek 3.0 sürümüyle bloglarımızda kullanabileceğimiz yeni bir özelli olan menüler gelmişti. 3.0 sürümünden önce tema yapan ve/veya kişiselleştiren arkadaşlar her ne kadar gerek olmayabilse de bu özellikten mahrum kaldılar. Bu yazımda WordPress temalarımızda normalde kategori veya sayfa sıralaması yapan yerlerde nasıl menü kullanabileceğimizi anlatıyorum.


Öncelikle menü özelliği ile sayfa/kategori sıralatma özelliklerini karşılaştırıp bu özelliği henüz hiç kullanmamış arkadaşlara kısaca avantajlarını açıklayım:

  • Öncelikli avantajı kullanım şeklidir, menü elemanlarınızı sürükle-bırak yaparak yerlerini değiştirebilirsiniz. Bunu

  • wp_list_categories veya wp_list_pages fonksiyonları sadece sayfa veya kategorileri görüntülerken menü özelliğinde menünüze koymak istediğiniz herhangi bir linki yerleştirebilirsiniz.


  • Birden fazla menü oluşturabilir, nerede ne görüntülendiğine tek bir panelden bakabilir ve menülerinizin tümünü oradan idare edebilirsiniz.




Hazırsanız hemen başlayalım. Öncelikle temanızın functions.php dosyasını açıyoruz ve temanın artık menü desteklemesini sağlayan kodumuzu giriyoruz.

add_theme_support( 'nav-menus' );

Ardından da menü alanlarımız için bir fonksiyon oluşturuyoruz ve içine menü alanlarımızı oluşturacak fonksiyon ve bu fonksiyona ait diziyi görüldüğü gibi giriyoruz. Burada kaç tane menü alanı tanımladığınız önemli değil, çünkü temanızda kaç tanesinin kaçını kullanacağınız tamamen size kalmış. Daha çok menü alanı eklemek istiyorsanız ona gördüzenleyebilirsiniz.

function register_my_menus() {
register_nav_menus(
array( 'birinci_menu' => __( 'Birinci menü' ),
 'ikinci_menu' => __( 'İkinci menü' ))
);
}


ve en sona da şunu yazıp oluşturduğumuz fonksiyonu temaya ekliyoruz:

add_action( 'init', 'register_my_menus' );

Bunları yapınca menüleri yüklemiş olacağız. Yönetim panelinizde Görünüm > Menüler sayfasından menülerinizi düzenleyebilirsiniz, fakat menülerimizin sitenin ön yüzünden görünebilmesi için sitenizde istediğiniz yerlere yerleştirmeniz gerekiyor. Varsayılan özelliklerde (yukarıdaki fonksiyonlarla da ilgili olarak) yerleşim kodunu şöyle kullanabiliriz.

'birinci_menu' )); ?>

wp_nav_menu içinde tanımladığım dizi sayesinde tıpkı wp_list_categories veya wp_list_pages fonksiyonlarındaki gibi menünün yapısal özelliklerine hakim olabiliyoruz. Bir menü eklediğinizde dizideki tüm elemanlara değer girmek durumunda olmuyoruz, bizim değer belirlemediğimiz elemanlar ile birlikte yazacak olursak yukarıdaki fonksiyonun tamamı şudur:

'theme_location' => 'birinci_menu',
'menu' => ,
'container' => 'div',
'container_class' => 'menu-{menu slug}-container',
'container_id' => ,
'menu_class' => 'menu',
'menu_id' => ,
'echo' => true,
'fallback_cb' => 'wp_page_menu',
'before' => ,
'after' => ,
'link_before' => ,
'link_after' => ,
'items_wrap' => '
    %3$s
',
'depth' => 0,
'walker' => );
?>


Dizi elemanlarının açıklamaları:

$theme_location
(string) (isteğe bağlı) Menü alanı seçicisidir. İçindekilerin görüntülenmesi istenen menü alanının kısa ismi girilmelidir.

Varsayılan: Yok
---

$menu
(string) (isteğe bağlı) İstenilen menünün seçilmesi içindir. (Sırasıyla) ID, kısa ad veya isim girilebilir.

Varsayılan: Yok
---

$container
(string) (isteğe bağlı) Menü elemanlarını kapsayacak olan HTML etiketidir. Sadece div veya nav kullanılabilir. Kapsayıcı kullanmamak için yandaki gibi kullanabilirsiniz: container => false

Varsayılan: div
---

$container_class
(string) (isteğe bağlı) Kapsayıcıya verilecek HTML class’ı.

Varsayılan: menu-{menu slug}-container
---

$container_id
(string)(isteğe bağlı) Kapsayıcıya verilecek olan HTML id’si.

Varsayılan: Yok
---

$menu_class
(string) (isteğe bağlı) Menüyü kapsayacak ul elemanı için verilecek HTML class’ı.

Varsayılan: menu
---

$menu_id
(string) (isteğe bağlı) Menüyü kapsayacak ul elemanı için verilecek HTML id’si.

Varsayılan: menu slug, incremented
---

$echo
(boolean) (isteğe bağlı) Menünün görüntülenip görüntülenmeyeceğini kontrol eder. ’0′ kullanarak olumsuz değer verebilirsiniz.

Varsayılan: true
---

$fallback_cb

(string) (isteğe bağlı) Eğer istenilen menü yoksa ne yazdırılacağını belirler.

Varsayılan: wp_page_menu
---

$before
(string) (isteğe bağlı) etiketinden önce yazdırılacakları belirler.

Default: Yok
---

$after
(string) (isteğe bağlı)
etiketinden sonra yazdırılacakları belirler.

Varsayılan: Yok
---

$link_before

(string) (isteğe bağlı) Link yazısından önce yazdırılacakları belirler.

Varsayılan: Yok
---

$link_after
(string) (isteğe bağlı) Link yazısından sonra yazdırılacakları belirler.


Varsayılan: Yok
---

$items_wrap
(string) (isteğe bağlı) Menü elemanlarının hangi etiketler tarafından nasıl kapsanacağını belirler.

Varsayılan: Yok
---

$depth

(integer) (isteğe bağlı) Üstten alta doğru kaç hiyerarşik katmanın yer alabileceğini belirler. ’0′ tüm katmanların görüntülenmesini sağlar.

Varsayılan: 0
---

$walker
(object) (isteğe bağlı) Kullanılacak olan özelleştirilmiş yürüteç nesnesi.

Varsayılan: new Walker_Nav_Menu


Bir örnekle açıklaycak olursak, benim temamda
    etiketleri zaten vardı, Bu nedenle onları kaldırmam gerekti ve bu yüzden şöyle bir kod kullandım:

    'birinci_menu', 'items_wrap' => '%3$s' ) ); ?>


    Bu konuda söylenebilecek daha fazla şey yok. Umarım yardımcı olabilmişimdir.

    Kaynak: http://www.mrtcntn.com/wordpress-3-0-menu-ozelligine-gecis/
 

 

wmaraci
reklam

occipital occipital Öğrenci-Blog Yazarlığı... Kullanıcı
  • Üyelik 03.12.2010
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci-Blog Yazarlığı...
  • Konum
  • Ad Soyad Ç** K**
  • Mesajlar 1194
  • Beğeniler 126 / 122
  • Ticaret 5, (%100)
Başlık: asdas :/
 

 

MertCanatan MertCanatan WM Aracı Kullanıcı
  • Üyelik 20.11.2010
  • Yaş/Cinsiyet 28 /
  • Meslek
  • Konum
  • Ad Soyad M** C**
  • Mesajlar 554
  • Beğeniler 0 / 8
  • Ticaret 0, (%0)


hızlı bir önizleme yapıyım derken öyle oldu :)
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al