Làm thế nào tôi có thể chỉ hiển thị một menu trên một số trang nhất định?


10

Thay vì sử dụng các tiện ích thanh bên để cho biết chúng sẽ hiển thị trên trang nào, tôi muốn chọn tại cài đặt menu để xuất hiện trên các trang cụ thể.

Cách Wordpress mặc định:

Nó trông như thế nào

Vì vậy, các dự án là một trang và có một số trang con. Nhưng điều gì sẽ xảy ra nếu tôi có thêm 10 trang và trang con này có cùng tình huống.

Tôi muốn thêm một cài đặt bổ sung (danh sách các trang cấp cao nhất):

Nơi tôi muốn cài đặt

Nhưng tôi không thể tìm thấy bất kỳ tài liệu, hành động, bộ lọc, vv khi các cài đặt này được tải.


Tôi nghĩ rằng nó phụ thuộc vào chủ đề của bạn. Nhưng với tư cách là một điểm khởi đầu codex.wordpress.org/Navlation_Menus sẽ giúp !!
sri

1
Tôi thấy liên kết đó rất nhiều lần, không có thông tin về việc thêm cài đặt vào menu. Chỉ tạo và hiển thị menu tùy chỉnh ...

Ôi. Tôi nghĩ rằng đó là một tùy chọn Joomla bản địa, dường như không có trong WordPress. Đối với trang web của bạn, bạn có thể tạo các tệp danh mục / Pages.php tùy chỉnh và sau đó thêm một menu tùy chỉnh duy nhất ở đó nhưng đó là một nỗi đau hoàn toàn. Bạn sẽ có bốn trang .php đầu ra và bốn menu duy nhất, mỗi menu cho mỗi lựa chọn ở trên. Một cách dễ dàng để thực hiện là sử dụng các tiện ích thanh bên làm công cụ điều hướng chính của bạn. công cụ widget menu tùy chỉnh là khá đơn giản. Tạo một menu cho mỗi trang, giả sử bạn có các mẫu duy nhất cho mỗi trang. Lưu ý, sidebar không phải là từ tốt nhất. Bạn có thể đặt một widget ở bất cứ đâu.
zipzit

Tôi nhận thức được các sidebars và widget. Những phần trang web nhỏ này cũng không được kết nối với một trang. Tôi không muốn sử dụng sidebars và widget và đã vô hiệu hóa chúng vì tôi không sử dụng bất kỳ cái nào trong số chúng. Dù sao, tôi nghĩ rằng các vị trí menu là cài đặt của menu, không phải là cài đặt của một widget có chứa menu.

Có phải câu hỏi của bạn chỉ là "Làm cách nào để thêm cài đặt menu tùy chỉnh?" hoặc cũng là "Làm cách nào để sử dụng cài đặt menu tùy chỉnh để chỉ hiển thị menu trên một số trang nhất định?"?
engelen

Câu trả lời:


3

Đó là một lựa chọn tốt, nhưng tôi đồng ý với sri, ngay bây giờ nó thực sự phụ thuộc vào chủ đề của bạn. Bạn có thể thực hiện một công việc thông qua is_page () . Bạn cần phải viết một cái gì đó như thế này trên tệp chủ đề page.php của bạn :

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

Nếu bạn muốn hiển thị thanh bên trên các trang khác, bạn có thể sử dụng logic hoặc như thế này:

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

Tôi không biết về một giải pháp tốt hơn, nhưng đây thực sự là một thực tiễn tồi tệ trong thế giới mã hóa. Tôi nghĩ rằng ít nhất có thể lặp qua một mảng hoặc một cái gì đó sau đó thực hiện trao đổi menu. Chắc chắn đánh giá cao câu trả lời mặc dù. Thở dài
BRogers 4/2/2016

1

Tôi nghĩ rằng sử dụng một plugin cho việc này là tốt hơn, vì vậy bạn có thể giữ chức năng ngay cả khi bạn thay đổi chủ đề trong tương lai. Kiểm tra plugin này. Nó làm những gì bạn muốn, nhưng hơi khác so với cách bạn chế nhạo nó.

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

Nếu điều này có ích, xin vui lòng bỏ phiếu hoặc chấp nhận là câu trả lời. Cảm ơn!


Tôi đã thử plugin này. Với plugin này, bạn chỉ có thể chọn một menu cho một loại bài đăng cụ thể. Tôi muốn chọn menu cho mỗi trang.

Nếu bạn chỉ có một menu trên toàn trang và bạn chỉ muốn ẩn một số liên kết nhất định trong menu đó khi người dùng ở trên một trang nhất định, plugin này thực hiện điều đó. Sau khi bạn chọn loại bài đăng bạn muốn menu trên (trang là những gì bạn muốn, hoặc nhiều hơn nữa), sau đó đi đến chỉnh sửa một trang và bạn có thể kiểm tra các liên kết bạn muốn ẩn. Điều này khác làm điều ngược lại. Bạn chọn một menu từ một metabox trên màn hình trang chỉnh sửa, vì vậy bạn cần nhiều menu để chọn từ: wordpress.org/plugins/ce-wp-menu-per-page
Mark.C

1

Đây là cách bạn có thể thực hiện trong Twenty Tw 12 chủ đề header.php được sao chép sang một chủ đề con.

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

Tạo một menu mới với các mục bạn muốn hiển thị và trao đổi tên menu có điều kiện trong mã ở trên với tên của menu của bạn.

tên menu_group có thể cần thay đổi cho các chủ đề khác ngoài Twenty Tw 12.

Nguồn


1

Tôi biết chủ đề này đã cũ nhưng trong trường hợp ai đó sẽ cần tìm kiếm câu trả lời cho điều này, tôi muốn đề xuất các menu có điều kiện từ themify https://themify.me/conditable-menus . Bạn chọn menu nào để sử dụng, trên mỗi trang, danh mục, meta, mọi thứ. và nó là miễn phí :) hy vọng điều này sẽ giúp


0

Nếu bạn sẵn sàng tham gia lại các widget của mình và muốn một giải pháp đơn giản, bạn có thể sử dụng một plugin có tên Display Widgets. Tôi đã sử dụng phần này và sử dụng phần văn bản nơi bạn có thể thêm liên kết đến nơi bạn muốn đến. Nó hoạt động cho dù các liên kết là trên trang web của riêng bạn hoặc đến một trang web khác. Nó có một khoảng trắng bên dưới văn bản nơi bạn có thể chọn các trang để hiển thị hoặc ẩn. Bạn vẫn có thể xóa các tiện ích mà bạn không sử dụng.

Tôi đã chơi xung quanh với các menu trong một thời gian trước khi tôi tìm kiếm và tìm thấy plugin này. Nó hoạt động tốt.

Bạn có thể tìm thấy nó trong phần Plugins của WordPress.org.


Cảm ơn rât nhiều! Nhưng tôi không tìm kiếm một plugin bổ sung. Và tôi không sử dụng các widget vì những phần trang web nổi này quá khó hiểu đối với một số khách hàng của tôi.

0

Một tùy chọn sẽ là tạo các mẫu tùy chỉnh cho mỗi menu mà bạn có. (Điều đó đề cập đến hộp kiểm vị trí chủ đề) Sau đó, trên mỗi trang, bạn chọn mẫu mà bạn muốn sử dụng và nó cũng sẽ sử dụng menu được liên kết với mẫu đó.

https://codex.wordpress.org/Page_Tem mẫu

Nó mang lại cho bạn cùng một kết quả mà tôi nghĩ rằng bạn đang tìm kiếm nhưng thay vì nói cho mỗi menu nó hiển thị trang nào, bạn sẽ nói với mỗi trang menu nào sẽ hiển thị trên đó. Một lợi ích bổ sung của việc làm theo cách này là không có cách nào để bạn vô tình nói hai menu ở cùng một nơi cùng một lúc.


Vâng, tôi đã xem xét điều này. Nhưng nhà phát triển không bao giờ biết người dùng cần bao nhiêu menu. Vì vậy, tôi phải tạo ra rất nhiều mẫu để bao gồm tất cả. template_a.php, template_b.php, template_c.php, Vv

-1

Bạn có thể sử dụng plugin Menu Swapper để làm điều tương tự từ bảng quản trị. Dưới đây là bản Demo của plugin này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.