ฉันจะแสดงเมนูในบางหน้าได้อย่างไร


10

แทนที่จะใช้วิดเจ็ตแถบด้านข้างเพื่อบอกว่าควรจะมองเห็นหน้าใดฉันต้องการเลือกที่การตั้งค่าเมนูเพื่อให้ปรากฏในหน้าเฉพาะ

วิธี Wordpress เริ่มต้น:

มันดูเป็นค่าเริ่มต้น

ดังนั้นโครงการจึงเป็นหน้าเว็บและมีหน้าย่อยบางส่วน แต่ถ้าฉันมีหน้าและหน้าย่อยมากกว่า 10 หน้าในสถานการณ์เดียวกัน

ฉันต้องการเพิ่มการตั้งค่าพิเศษ (รายการหน้าระดับบนสุด):

ฉันต้องการตั้งค่าที่ไหน

แต่ฉันไม่พบเอกสารการกระทำตัวกรองและอื่น ๆ เมื่อโหลดการตั้งค่าเหล่านี้


ฉันคิดว่ามันขึ้นอยู่กับธีมของคุณ แต่เป็นจุดเริ่มต้นcodex.wordpress.org/Navigation_Menusควรช่วย !!
sri

1
ฉันเห็นลิงก์นั้นหลายครั้งไม่มีข้อมูลเกี่ยวกับการเพิ่มการตั้งค่าในเมนู สร้างและแสดงเมนูกำหนดเองเท่านั้น ...

อุ๊ยตาย ฉันคิดว่านั่นเป็นตัวเลือกดั้งเดิมของ Joomla ไม่ใช่ใน WordPress สำหรับไซต์ของคุณคุณสามารถสร้างไฟล์ประเภท / pages.php ที่กำหนดเองได้จากนั้นเพิ่มเมนูที่กำหนดเองที่ไม่ซ้ำกันที่นั่น แต่นั่นเป็นความเจ็บปวดโดยรวมที่คอ คุณมีสี่หน้าเอาต์พุต. php และสี่เมนูที่ไม่ซ้ำกันหนึ่งรายการสำหรับการเลือกแต่ละรายการข้างต้น วิธีง่าย ๆ ในการนำไปใช้คือการใช้วิดเจ็ตแถบด้านข้างเป็นเครื่องมือนำทางหลักของคุณ เครื่องมือวิดเจ็ตเมนูที่กำหนดเองนั้นค่อนข้างเรียบง่าย สร้างเมนูสำหรับแต่ละหน้าสมมติว่าคุณมีเทมเพลตที่ไม่ซ้ำกันสำหรับแต่ละหน้า หมายเหตุแถบด้านข้างไม่ใช่คำที่ดีที่สุด คุณสามารถใส่วิดเจ็ตได้ทุกที่
zipzit

ฉันรู้จักแถบด้านข้างและวิดเจ็ต ส่วนเว็บไซต์เล็ก ๆ เหล่านี้ที่ไม่ได้เชื่อมต่อกับหน้า ฉันไม่ต้องการใช้แถบด้านข้างและวิดเจ็ตและปิดการใช้งานเพราะฉันไม่ได้ใช้เลย อย่างไรก็ตามฉันคิดว่าที่ตั้งของเมนูเป็นการตั้งค่าของเมนูไม่ใช่การตั้งค่าของวิดเจ็ตที่มีเมนู

คำถามของคุณเป็นเพียง "ฉันจะเพิ่มการตั้งค่าเมนูที่กำหนดเองได้อย่างไร" หรือว่า "ฉันจะใช้การตั้งค่าเมนูแบบกำหนดเองเพื่อแสดงเมนูในบางหน้าได้อย่างไร"?
engelen

คำตอบ:


3

นั่นเป็นตัวเลือกที่ดี แต่ฉันเห็นด้วยศรีตอนนี้มันขึ้นอยู่กับธีมของคุณ คุณสามารถแก้ไข is_page ()ได้ คุณต้องเขียนอะไรแบบนี้ในไฟล์ธีมpage.phpของคุณ:

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

หากคุณต้องการแสดงแถบด้านข้างในหน้าอื่นด้วยคุณสามารถใช้ตรรกะหรือดังนี้:

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

ฉันไม่รู้วิธีแก้ปัญหาที่ดีกว่านี้ แต่นี่เป็นการฝึกฝนที่ไม่ดีในโลกแห่งการเข้ารหัส ฉันคิดว่าอย่างน้อยที่สุดก็อาจวนรอบอาร์เรย์หรือบางอย่างจากนั้นทำการสลับเมนู ขอบคุณคำตอบที่แน่นอนว่า เฮ้อ
BRogers

1

ฉันคิดว่าการใช้ปลั๊กอินสำหรับสิ่งนี้ดีกว่าดังนั้นคุณจึงสามารถใช้งานได้แม้ว่าคุณจะเปลี่ยนธีมในอนาคต ลองใช้งานปลั๊กอินนี้ มันทำในสิ่งที่คุณต้องการ แต่แตกต่างจากที่คุณล้อเลียนเล็กน้อย

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

หากสิ่งนี้ช่วยได้โปรดโหวตหรือยอมรับว่าเป็นคำตอบ ขอบคุณ!


ฉันลองใช้ปลั๊กอินนี้แล้ว ด้วยปลั๊กอินนี้คุณสามารถเลือกเมนูสำหรับประเภทโพสต์เฉพาะ ฉันต้องการเลือกเมนูสำหรับแต่ละหน้า

หากคุณมีเมนูเดียวทั่วทั้งไซต์และคุณต้องการซ่อนลิงก์บางอย่างในเมนูนั้นเมื่อผู้ใช้อยู่ในหน้าใดหน้าหนึ่งปลั๊กอินนี้ทำเช่นนั้น หลังจากที่คุณเลือกประเภทโพสต์ที่คุณต้องการเมนูบน (หน้าคือสิ่งที่คุณต้องการหรือมากกว่า) จากนั้นไปที่การแก้ไขหน้าและคุณสามารถตรวจสอบการเชื่อมโยงที่คุณต้องการซ่อน อีกอันหนึ่งทำแบบตรงกันข้าม คุณเลือกเมนูจาก metabox บนหน้าจอแก้ไขดังนั้นคุณต้องเลือกหลายเมนูจาก: wordpress.org/plugins/ce-wp-menu-per-page
Mark.C

1

นี่คือวิธีที่คุณสามารถทำได้ในหัวข้อยี่สิบยี่สิบธีม header.php คัดลอกไปยังธีมลูก

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

สร้างเมนูใหม่ด้วยรายการที่คุณต้องการแสดงและสลับเงื่อนไขของชื่อเมนูในรหัสด้านบนด้วยชื่อเมนูของคุณ

ชื่อ menu_class อาจจำเป็นต้องเปลี่ยนสำหรับชุดรูปแบบอื่นนอกเหนือจาก Twenty Twelve

แหล่ง


1

ฉันรู้ว่าหัวข้อนี้เก่า แต่ในกรณีที่มีคนจะต้องค้นหาคำตอบสำหรับเรื่องนี้ผมอยากจะขอแนะนำเมนูเงื่อนไขจาก themify https://themify.me/conditional-menus คุณเลือกเมนูที่จะใช้ต่อหน้าหมวดหมู่เมตาทุกอย่าง และมันก็ฟรี :) หวังว่านี่จะช่วยได้


0

หากคุณยินดีที่จะมีส่วนร่วมวิดเจ็ตของคุณอีกครั้งและต้องการวิธีแก้ปัญหาอย่างง่ายคุณสามารถใช้ปลั๊กอินที่เรียกว่า Display Widgets ฉันใช้มันและใช้ส่วนข้อความที่คุณสามารถเพิ่มลิงก์ไปยังที่ที่คุณต้องการไป มันทำงานไม่ว่าจะเป็นลิงค์ที่อยู่ในเว็บไซต์ของคุณหรือไปยังเว็บไซต์อื่น มันมีช่องว่างด้านล่างข้อความที่คุณสามารถเลือกหน้าที่จะแสดงหรือซ่อน คุณยังสามารถลบวิดเจ็ตที่คุณไม่ได้ใช้

ฉันเล่นไปรอบ ๆ กับเมนูเป็นเวลานานก่อนที่ฉันจะค้นหาและพบปลั๊กอินนี้ มันใช้งานได้ดี

คุณสามารถค้นหาได้ในส่วนปลั๊กอินของ WordPress.org


ขอบคุณมาก! แต่ฉันไม่ได้มองหาปลั๊กอินเสริม และฉันไม่ได้ใช้วิดเจ็ตเนื่องจากส่วนของเว็บไซต์ลอยเหล่านี้ยากเกินไปที่จะเข้าใจสำหรับลูกค้าของฉัน

0

ทางเลือกหนึ่งคือการสร้างแม่แบบกำหนดเองสำหรับแต่ละเมนูที่คุณมี (ซึ่งอ้างถึงกล่องกาเครื่องหมายที่ตั้งของธีม) จากนั้นในทุกหน้าคุณเลือกเทมเพลตที่คุณต้องการใช้และจะใช้เมนูที่เกี่ยวข้องกับเทมเพลตนั้น

https://codex.wordpress.org/Page_Templates

มันให้ผลลัพธ์แบบเดียวกับที่ฉันคิดว่าคุณกำลังมองหา แต่แทนที่จะบอกแต่ละหน้าว่ามันแสดงหน้าอะไรคุณจะบอกแต่ละหน้าว่าเมนูไหนจะแสดงบนหน้าจอ ประโยชน์เพิ่มเติมของการทำเช่นนี้คือไม่มีทางที่คุณจะบอกให้เมนูสองรายการอยู่ในที่เดียวกันในเวลาเดียวกันโดยไม่ตั้งใจ


ใช่ฉันได้ดูสิ่งนี้แล้ว แต่ผู้พัฒนาไม่เคยรู้ว่ามีเมนูที่ผู้ใช้ต้องการ ดังนั้นฉันต้องสร้างเทมเพลตจำนวนมากเพื่อครอบคลุมทั้งหมด template_a.php, template_b.php, template_c.phpฯลฯ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.