it-swarm-id.com

Bagaimana cara mendapatkan halaman kategori tunggal wp_nav_menu saya untuk menyoroti induknya?

Dengan sistem wp_nav_menu baru, dimungkinkan untuk menambahkan kategori sebagai item menu, jadi dalam contoh saya, saya memiliki kategori 'berita', yang merupakan item submenu dari 'Tentang'.

About (page)
--news (category)
--history (page)
--contact us (page)

Menu yang menyoroti CSS mengambil dari leluhur menu saat ini dan leluhur menu saat ini, sehingga ketika saya berada di bagian submenu, item menu tingkat atas (mis. 'Tentang') disorot ketika saya mengunjungi 'berita'.

Ini berfungsi dengan baik, terlepas dari ketika saya mengunjungi pos di kategori 'berita', yang cocok dengan is_single () dan in_category ('news').

Sejauh yang saya bisa lihat di Firebug, 'menu saat ini orang tua' dan 'menu saat ini' leluhur 'diterapkan ke item menu' berita ', namun itu tidak diterapkan pada item menu tingkat atas' Tentang '.

Apakah ada sesuatu yang saya lewatkan dalam mengatur menu saya? Saya sudah mencoba menggunakan custom walker, namun sepertinya leluhur menu awal tidak diatur dengan benar?

Sepertinya satu-satunya solusi saya (tanpa menggunakan peretasan JQuery yang tidak menyenangkan) adalah dengan membuat halaman 'berita' yang menanyakan posting berita, daripada menunjuk ke 'kategori' berita.

Ada ide?

Terima kasih, Dan

Pembaruan dengan contoh kode 09/09/2010

Caranya saat ini, melihat satu halaman di kategori Berita http://www.example.com/2010/09/top-news-did-you-know/ :

<li id="menu-item-28" class="menu-item menu-item-type-post_type menu-item-28"><a href="http://www.example.com/about/">About Us</a>
<ul class="sub-menu">
<li id="menu-item-71" class="menu-item menu-item-type-taxonomy"><a href="http://www.example.com/category/events/">Events</a></li>
<li id="menu-item-70" class="menu-item menu-item-type-taxonomy current-post-ancestor current-menu-parent current-post-parent current-menu-parent"><a href="http://www.example.com/category/news/">News &#038; views</a></li>
<li id="menu-item-88" class="menu-item menu-item-type-post_type"><a href="http://www.example.com/contact-us/">Contact Us</a></li>
</ul></li>

Jadi Anda melihat bahwa "Tentang Kami" tidak memiliki kelas CSS untuk menunjukkan bahwa itu adalah induk dari halaman yang saat ini dilihat.

Bagaimana saya pikir itu harus bekerja (dan jujur, jika tidak melakukan ini, maka itu bug karena kurangnya implementasi):

<li id="menu-item-28" class="menu-item menu-item-type-post_type current-menu-ancestor current-menu-parent current_page_parent current_page_ancestor menu-item-28"><a href="http://www.example.com/about/">About Us</a>
<ul class="sub-menu">
<li id="menu-item-71" class="menu-item menu-item-type-taxonomy"><a href="http://www.example.com/category/events/">Events</a></li>
<li id="menu-item-70" class="menu-item menu-item-type-taxonomy current-post-ancestor current-menu-parent current-post-parent current-menu-parent"><a href="http://www.example.com/category/news/">News &#038; views</a></li>
<li id="menu-item-88" class="menu-item menu-item-type-post_type"><a href="http://www.example.com/contact-us/">Contact Us</a></li>
</ul></li>

Ini memiliki current-menu-ancestor current-menu-parent current_page_parent current_page_ancestor kelas CSS yang melekat pada item menu Tingkat atas. Ini berfungsi seperti ini untuk setiap halaman lain, atau bahkan ketika melihat kategori itu sendiri, hanya saja tidak satu halaman dalam suatu kategori.

2
Dan Smart

Saat ini hal ini tidak dimungkinkan jika item menu halaman adalah induk dari item menu kategori.

Dalam contoh Anda jika Tentang adalah kategori dan Berita adalah kategori anak maka item menu Tentang (kategori) akan ditetapkan:

  • leluhur pasca-saat ini
  • menu-induk-saat ini
  • current-post-parent
2
Chris_O

Saya juga mengalami masalah yang sama. Saya tidak dapat menemukan peretasan php, jadi saya menggunakan peramban javascript:

function findAncestor(){
    var currentParentLi = document.getElementsByClassName("current-menu-parent");
    if(currentParentLi){
        var currentAncestorLi = currentParentLi[0].parentNode.parentNode;
        if(currentAncestorLi && currentAncestorLi.tagName=="LI"){
            currentAncestorLi.className += " current-menu-ancestor";
        }
    }
}

Masukkan kode di atas dalam file .js, lalu rujuk di bagian atas halaman Anda dan panggil fungsi findAncestor () di window.onload, i.e .:

<script type="text/javascript">
<!--
window.onload = function() {
    findAncestor()
}
//-->
</script>
1
Meredith Dodge

Anda dapat menemukan forum utas ini sangat informatif, karena saya lebih dekat dengan solusinya.

http://diythemes.com/forums/showthread.php?39258-Category-highlighting-for-single-post-%28-wp-menu-%29 .

Pierre

0
user1060

Saya setuju dengan Chris_O

Jadi, saya memiliki halaman depan statis, 2 kategori utama + 1 subkategori di bawahnya, dan halaman lain. Didorong oleh Wordpress 3.0.1 dan Tesis 1.8, menggunakan menu Wordpress bukan menu Tesis.

Untuk menyoroti kategori utama yang saya gunakan: .current-post -enek leluhur a {background: #FFFFFF;}

(ini menyoroti kategori utama saat di satu posting)

Untuk menyorot subkategori saya menggunakan: .sub-menu .current-post -enek leluhur a {background: # F0EEC2;}

(ini menyoroti subkategori -di bawah kategori utama- ketika pada satu posting dari subkategori)

Saya ingin keduanya "kategori utama" dan "subkategori" menjadi disorot.

Tetapi saya tidak dapat menemukan triknya.

Pierre

0
user1060