it-swarm-vi.tech

Làm cách nào để có được trang danh mục đơn wp_nav_menu của tôi để làm nổi bật phụ huynh?

Với hệ thống wp_nav_menu mới, có thể thêm một danh mục dưới dạng một mục menu, vì vậy trong ví dụ của tôi, tôi có một danh mục 'tin tức', đó là một mục menu con của 'Giới thiệu'.

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

Menu làm nổi bật CSS chọn từ tổ tiên hiện tại-menu-cha mẹ và hiện tại-menu-tổ tiên, để khi tôi ở phần menu con, mục menu cấp cao nhất (ví dụ: 'Giới thiệu') được tô sáng khi tôi truy cập 'tin tức'.

Điều này hoạt động tốt, ngoài khi tôi truy cập một bài đăng trong danh mục 'tin tức', phù hợp với is_single () và in_carget ('news').

Theo như tôi có thể thấy trong Fireorms, 'menu hiện tại-cha mẹ' và 'hiện tại-menu-tổ tiên' được áp dụng cho mục menu 'tin tức', tuy nhiên nó không được áp dụng cho mục menu cấp cao nhất 'Giới thiệu'.

Có điều gì tôi đang thiếu trong việc thiết lập thực đơn của mình? Tôi đã thử sử dụng một máy đi bộ tùy chỉnh, tuy nhiên có vẻ như tổ tiên của menu ban đầu không được thiết lập đúng cách?

Có vẻ như giải pháp duy nhất của tôi (không dùng đến một bản hack JQuery khó chịu) là tạo một trang 'tin tức' truy vấn các bài đăng tin tức, thay vì chỉ vào mục 'tin tức'.

Có ý kiến ​​gì không?

Cảm ơn, Dan

Cập nhật với mẫu mã 09/09/2010

Cách thức hiện tại, xem một trang trong danh mục Tin tức http://www.example.com/2010/09/top-news-did-you-ledge/ :

<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>

Vì vậy, bạn thấy rằng "Giới thiệu" không có bất kỳ lớp CSS nào để cho biết nó là cha mẹ của trang hiện đang xem.

Tôi nghĩ nó nên hoạt động như thế nào (và thành thật mà nói, nếu nó không làm điều này, thì đó là một lỗi do thiếu triển khai):

<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>

Điều này có các lớp CSS current-menu-ancestor current-menu-parent current_page_parent current_page_ancestor được đính kèm với mục menu Cấp cao nhất. Nó hoạt động theo cách này cho mọi trang khác, hoặc ngay cả khi xem chính danh mục, chỉ không phải là một trang duy nhất trong danh mục.

2
Dan Smart

Hiện tại điều này là không thể nếu một mục menu trang là cha mẹ của một mục menu danh mục.

Trong ví dụ của bạn nếu Giới thiệu là một danh mục Tin tức là danh mục con thì mục menu Giới thiệu (danh mục) sẽ được chỉ định:

  • hiện tại hậu-tổ tiên
  • menu hiện tại-cha mẹ
  • hiện tại hậu cha mẹ
2
Chris_O

Tôi cũng gặp vấn đề tương tự. Tôi không thể tìm thấy hack php, vì vậy tôi đã sử dụng một 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";
        }
    }
}

Đặt mã ở trên vào một tệp .js, sau đó tham chiếu nó ở đầu trang của bạn và gọi hàm findAncestor () trên window.onload, tức là:

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

Bạn có thể thấy diễn đàn chủ đề này rất nhiều thông tin, vì tôi gần hơn với giải pháp.

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

Pierre

0
user1060

Tôi đồng tình với Chris_O

Vì vậy, tôi có một trang đầu tĩnh, 2 danh mục chính + 1 danh mục con bên dưới và một trang khác. Được điều khiển bởi Wordpress 3.0.1 và Luận án 1.8, sử dụng menu Wordpress thay vì menu Thesis.

Để làm nổi bật danh mục chính tôi đã sử dụng: .c Hiện-hậu-tổ tiên một {nền: #FFFFFF;}

(điều này làm nổi bật danh mục chính khi trên một bài đăng)

Để làm nổi bật danh mục con tôi đã sử dụng: .sub-menu .c Hiện-hậu-tổ tiên một {nền: # F0EEC2;}

(mục này nêu bật danh mục con - theo danh mục chính - khi trên một bài đăng của danh mục phụ)

Tôi muốn cả "danh mục chính" "danh mục con" nhấn mạnh.

Nhưng tôi không thể tìm thấy mánh khóe.

Pierre

0
user1060