Bir menüyü yalnızca belirli sayfalarda nasıl görüntüleyebilirim?


10

Hangi sayfada görünmeleri gerektiğini belirtmek için kenar çubuğu widget'larını kullanmak yerine, belirli sayfalarda görünecek menü ayarlarında seçim yapmak istiyorum.

Varsayılan Wordpress yolu:

Varsayılan nasıl görünüyor?

Yani projeler bir sayfa ve bazı alt sayfaları var. Ama aynı durumla bu sayfaların ve alt sayfaların 10 tanesini daha beğenirsem ne olur?

Ek bir ayar (üst düzey sayfaların bir listesi) eklemek istiyorum:

Ayarı nerede istiyorum

Ancak bu ayarlar yüklendiğinde herhangi bir belge, eylem, filtre vb. Bulamıyorum.


Bence bu senin temanıza bağlı. Ancak bir başlangıç ​​noktası olarak codex.wordpress.org/Navigation_Menus yardımcı olmalı !!
sri

1
Bağlantının birçok kez göründüğünü gördüm, bir menüye ayar ekleme hakkında bilgi yok. Sadece özel bir menü oluşturun ve görüntüleyin ...

Ahh. Bence bu yerel bir Joomla seçeneği, görünüşe göre WordPress'te değil. Siteniz için, özel çıktı kategorisi / pages.php dosyaları oluşturabilir ve oraya benzersiz bir özel menü ekleyebilirsiniz, ancak bu, boyunda toplam bir acıdır. Yukarıdaki her seçim için bir tane olmak üzere dört çıktı .php sayfanız ve dört benzersiz menünüz olur. Uygulamanın kolay bir yolu, kenar çubuğu widget'larını birincil gezinme aracınız olarak kullanmaktır. özel menü widget aracı oldukça basittir. Her sayfa için benzersiz şablonlara sahip olduğunuzu varsayarak, her sayfa için bir menü oluşturun. Kenar çubuğunun en iyi kelime olmadığını unutmayın. Herhangi bir yere bir widget koyabilirsiniz.
zipzit

Kenar çubuklarının ve widget'ların farkındayım. Bir sayfaya bağlı olmayan bu küçük web sitesi bölümleri. Kenar çubuklarını ve widget'ları kullanmak istemiyorum ve bunları devre dışı bıraktım çünkü hiçbirini kullanmıyorum. Her neyse, menü konumlarının bir menü içeren bir widget ayarı değil, menü ayarları olduğunu düşünüyorum.

Sorunuz yalnızca "Özel menü ayarlarını nasıl eklerim?" ya da "Yalnızca belirli sayfalarda bir menü görüntülemek için özel menü ayarlarını nasıl kullanırım?" mı?
engelen

Yanıtlar:


3

Bu güzel bir seçenek, ama sri ile hemfikirim, şu anda gerçekten temanıza bağlı. İs_page () üzerinden geçici çözüm bulabilirsiniz . Page.php tema dosyanıza böyle bir şey yazmanız gerekir :

<?php
    if (is_page('projects')) {
        if ( is_active_sidebar( 'sidebar-navigation' )) {
            dynamic_sidebar( 'sidebar-navigation' );
        }
    }
?>

Kenar çubuğunu diğer sayfalarda da göstermek istiyorsanız, mantığı kullanabilir veya şuna benzer:

if (is_page('projects') || is_page('home') || is_page('post-page'))

Daha iyi bir çözüm bilmiyorum, ama bu kodlama dünyasında gerçekten kötü bir uygulama. En azından belki bir dizi ya da bir şey aracılığıyla döngü sonra menü takas gerçekleştirmek düşünüyorum. Kesinlikle cevap olsa takdir. İç Çekme
BRogers

1

Bunun için bir eklenti kullanmak daha iyi olduğunu düşünüyorum, böylece gelecekte temaları değiştirseniz bile işlevselliği koruyabilirsiniz. Bu eklentiye göz atın. İstediğinizi yapar, ancak alay etme şeklinizden biraz farklıdır.

https://wordpress.org/plugins/page-specific-menu-items/

Bu yardımcı olursa, lütfen oy verin veya cevap olarak kabul edin. Teşekkürler!


Bu eklentiyi denedim. Bu eklenti ile yalnızca belirli bir gönderi türü için bir menü seçebilirsiniz. Her sayfa için menüyü seçmek istiyorum.

Sitede yalnızca bir menünüz varsa ve kullanıcı belirli bir sayfada olduğunda o menüdeki belirli bağlantıları gizlemek istiyorsanız, bu eklenti bunu yapar. Menünün üzerinde olmasını istediğiniz yayın türünü seçtikten sonra (sayfa istediğiniz şeydir veya daha fazlası), ardından bir sayfayı düzenlemeye gidin ve gizlemek istediğiniz bağlantıları kontrol edebilirsiniz. Bu diğeri bunu tersini yapıyor. Sayfa düzenleme ekranındaki bir meta kutudan bir menü seçersiniz, bu nedenle seçim yapabilmek için birden fazla menüye ihtiyacınız vardır: wordpress.org/plugins/ce-wp-menu-per-page
Mark.C

1

Alt temaya kopyalanan Yirmi Oniki temalar header.php'de böyle yapabilirsiniz.

<?php if ( is_page('projects') ) : ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu' => 'conditional-menu-name', 'menu_class' => 'nav-menu' ) ); ?>
<?php else : ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu' => 'Primary', 'menu_class' => 'nav-menu' ) ); ?>
<?php endif; ?>

Görüntülemek istediğiniz öğeleri içeren yeni bir menü oluşturun ve yukarıdaki koddaki koşullu menü adını menünüzün adıyla değiştirin.

menu_class isimlerinin Yirmi Oniki dışındaki temalar için değiştirilmesi gerekebilir.

Kaynak


1

Bu iş parçacığının eski olduğunu biliyorum ama birisi bunun için cevap araması gerekiyorsa, ben https://themify.me/conditional-menus themify koşullu menüler önermek istiyorum . Sayfa, kategori, meta ve her şey için hangi menüyü kullanacağınızı seçersiniz. ve ücretsiz :) umarım bu yardımcı olur


0

Widget'larınızı yeniden meşgul etmek istiyorsanız ve basit bir çözüm istiyorsanız, Display Widget'ları adlı bir eklenti kullanabilirsiniz. Bunu kullandım ve nereye gitmek istediğinize bağlantılar ekleyebileceğiniz metin bölümünü kullanıyorum. Linkler kendi sitenizde mi yoksa başka bir sitede mi çalışıyor? Hangi sayfaların gösterileceğini veya gizleneceğini seçebileceğiniz metnin altında bir boşluk vardır. Hala kullanmadığınız widget'ları kaldırabilirsiniz.

Bu eklentiyi aramadan ve bulmadan önce menülerle bir süre oynadım. İyi çalışıyor.

WordPress.org'un Eklentiler bölümünde bulabilirsiniz.


Çok teşekkür ederim! Ama fazladan bir eklenti aramıyorum. Bu kayan web sitesi parçalarını bazı müşterilerim için anlamak çok zor olduğu için widget kullanmıyorum.

0

Seçeneklerden biri, sahip olduğunuz her menü için özel şablonlar yapmak olabilir. (Bu, tema konumları onay kutusunu işaret eder) Sonra her sayfada, kullanmasını istediğiniz şablonu seçersiniz ve bu şablonla ilişkili menüyü de kullanır.

https://codex.wordpress.org/Page_Templates

Sanırım aradığınızı düşündüğünüz aynı sonucu verir, ancak her menüye hangi sayfada gösterildiğini söylemek yerine, her sayfaya hangi menünün gösterileceğini söyleyeceksiniz. Bu şekilde yapmanın ek bir yararı, yanlışlıkla iki menünün aynı anda aynı yerde olmasını söylemenin bir yolu olmamasıdır.


Evet, buna baktım. Ancak geliştirici, kullanıcının kaç menüye ihtiyacı olduğunu asla bilemez. Bu yüzden hepsini kapsayacak birçok şablon oluşturmam gerekiyor. template_a.php, template_b.php, template_c.phpVb

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.