Bagaimana saya bisa menampilkan menu pada halaman tertentu saja?

10

Alih-alih menggunakan widget sidebar untuk memberi tahu pada halaman apa itu harus terlihat, saya lebih suka memilih pada pengaturan menu untuk muncul pada halaman tertentu.

Cara Wordpress default:

Tampilannya standar

Jadi proyek adalah halaman dan memiliki beberapa subhalaman. Tetapi bagaimana jika saya memiliki 10 halaman lebih dan subhalaman dengan situasi yang sama.

Saya ingin menambahkan pengaturan tambahan (daftar halaman tingkat atas):

Di mana saya ingin pengaturan

Tetapi saya tidak dapat menemukan dokumentasi, tindakan, filter dll ketika pengaturan ini dimuat.


sumber
Saya pikir itu tergantung pada tema Anda. Tetapi sebagai titik awal codex.wordpress.org/Navigation_Menus akan membantu !!
Sri
1
Saya melihat tautan itu berkali-kali, tidak ada informasi tentang menambahkan pengaturan ke menu. Hanya buat dan tampilkan menu khusus ...
Aduh. Saya pikir itu adalah opsi Joomla asli, tampaknya tidak di WordPress. Untuk situs Anda, Anda dapat membuat file kategori / halaman.php keluaran khusus dan kemudian menambahkan menu khusus yang unik di sana tetapi itu benar-benar menyebalkan. Anda akan memiliki empat halaman .php keluaran dan empat menu unik, satu untuk setiap pilihan di atas. Salah satu cara mudah untuk menerapkannya adalah dengan menggunakan widget bilah sisi sebagai alat navigasi utama Anda. alat widget menu kustom cukup sederhana. Buat menu untuk setiap halaman, dengan asumsi Anda memiliki template unik untuk masing-masing halaman. Catatan, bilah sisi bukan kata terbaik. Anda bisa meletakkan widget di mana saja.
zipzit
Saya mengetahui sidebar dan widget. Bagian situs web kecil ini yang juga tidak terhubung ke halaman. Saya tidak ingin menggunakan bilah sisi dan widget dan telah menonaktifkannya karena saya tidak menggunakannya. Bagaimanapun, saya pikir lokasi menu adalah pengaturan menu, bukan pengaturan widget yang berisi menu.
Apakah pertanyaan Anda hanya "Bagaimana cara menambahkan pengaturan menu khusus?" atau apakah itu juga "Bagaimana cara menggunakan pengaturan menu khusus untuk menampilkan menu pada halaman tertentu saja?"?
engelen

Jawaban:

3

Itu pilihan yang bagus, tapi saya setuju dengan sri, sekarang ini benar-benar tergantung pada tema Anda. Anda dapat melakukan penyelesaian melalui is_page () . Anda perlu menulis sesuatu seperti ini di file tema page.php Anda :

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

Jika Anda ingin menampilkan bilah samping di halaman lain, Anda dapat menggunakan logika atau seperti ini:

if (is_page('projects') || is_page('home') || is_page('post-page'))
Bernie
sumber
Saya tidak tahu solusi yang lebih baik, tetapi ini benar-benar praktik buruk di dunia pengkodean. Saya berpikir bahwa paling tidak mungkin loop melalui array atau sesuatu kemudian melakukan swap menu. Sangat menghargai jawabannya. Sigh
BRogers
1

Saya pikir menggunakan plugin untuk ini lebih baik, sehingga Anda dapat menjaga fungsionalitas bahkan jika Anda mengubah tema di masa depan. Lihatlah plugin ini. Itu melakukan apa yang Anda inginkan, tetapi sedikit berbeda dari cara Anda mengejeknya.

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

Jika ini membantu, silakan pilih atau terima sebagai jawabannya. Terima kasih!

Mark.C
sumber
Saya sudah mencoba plugin ini. Dengan plugin ini, Anda hanya dapat memilih menu untuk jenis posting tertentu. Saya ingin memilih menu untuk setiap halaman.
Jika Anda hanya memiliki satu menu di situs, dan Anda hanya ingin menyembunyikan tautan tertentu di menu itu ketika pengguna berada pada halaman tertentu, plugin ini melakukan itu. Setelah Anda memilih jenis posting yang Anda inginkan pada menu (halaman adalah apa yang Anda inginkan, atau lebih) kemudian pergi untuk mengedit halaman, dan Anda dapat memeriksa tautan yang ingin Anda sembunyikan. Yang satu ini melakukan sebaliknya. Anda memilih menu dari kotak metabox pada layar edit halaman, jadi Anda perlu beberapa menu untuk memilih: wordpress.org/plugins/ce-wp-menu-per-page
Mark.C
1

Ini adalah bagaimana Anda dapat melakukannya di Twenty Twelve themes header.php disalin ke tema anak.

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

Buat menu baru dengan item yang ingin Anda tampilkan dan tukar keluar nama menu bersyarat dalam kode di atas dengan nama menu Anda.

nama menu_class mungkin perlu diubah untuk tema selain Twenty Twelve.

Sumber

Brad Dalton
sumber
1

Saya tahu utas ini sudah lama tetapi jika seseorang perlu mencari jawaban untuk ini, saya ingin menyarankan menu bersyarat dari themify https://themify.me/conditional-menus . Anda memilih menu mana yang akan digunakan, per halaman, kategori, meta, semuanya. dan gratis :) harap ini bisa membantu

rosane
sumber
0

Jika Anda ingin menggunakan kembali widget Anda dan menginginkan solusi sederhana, Anda dapat menggunakan plugin yang disebut Display Widgets. Saya telah menggunakan ini dan menggunakan bagian teks tempat Anda dapat menambahkan tautan ke tempat yang ingin Anda tuju. Ini berfungsi apakah tautannya ada di situs Anda sendiri atau ke situs lain. Ini memiliki ruang di bawah teks di mana Anda dapat memilih halaman mana yang akan ditampilkan atau disembunyikan. Anda masih dapat menghapus widget yang tidak Anda gunakan.

Saya bermain-main dengan menu cukup lama sebelum saya mencari dan menemukan plugin ini. Ini bekerja dengan baik.

Anda dapat menemukannya di bagian Plugin di WordPress.org.

Susan
sumber
Terima kasih banyak! Tapi saya tidak mencari plugin tambahan. Dan saya tidak menggunakan widget karena bagian-bagian situs web mengambang ini terlalu sulit untuk dipahami oleh beberapa pelanggan saya.
0

Salah satu opsi adalah membuat templat khusus untuk setiap menu yang Anda miliki. (Itu merujuk ke kotak centang lokasi tema) Kemudian pada setiap halaman, Anda memilih templat yang ingin Anda gunakan dan juga akan menggunakan menu yang terkait dengan templat itu.

https://codex.wordpress.org/Page_Templates

Ini memberi Anda hasil yang sama, saya pikir Anda mencari tetapi daripada memberi tahu setiap menu pada halaman apa yang ditampilkan, Anda akan memberi tahu setiap halaman menu apa yang akan ditampilkan di sana. Manfaat tambahan melakukannya dengan cara ini adalah tidak ada cara bagi Anda untuk secara tidak sengaja mengatakan dua menu berada di tempat yang sama pada waktu yang bersamaan.

KnightHawk
sumber
Ya, saya telah melihat ini. Tetapi pengembang tidak pernah tahu berapa banyak menu yang dibutuhkan pengguna. Jadi saya harus membuat banyak template untuk menutupi semuanya. template_a.php, template_b.php, template_c.phpDll