เมื่อใดที่จะใช้ is_home () vs is_front_page ()?


66

ฉันพบว่าis_front_pageดูเหมือนจะกลับจริงเมื่อฉันดูหน้าแรกและมีการโพสต์เหนียวเดียวที่นั่น

นอกจากนี้ยังมีผลตอบแทนจริงเมื่อผมได้รับมอบหมายให้หน้าเป็นหน้าคงผ่านการตั้งค่า> การอ่าน

ทำไมฉันจะเคยต้องการที่จะใช้is_home()?

คำตอบ:


65

is_front_page()ผลตอบแทนจริงถ้าผู้ใช้อยู่ในหน้าหรือหน้าของโพสต์ที่ตั้งค่าเป็นหน้าแรกในการตั้งค่า -> การอ่าน -> หน้าแรกของคุณแสดง

ดังนั้นหากคุณตั้งค่าabout usเป็นหน้าแรกเงื่อนไขนี้จะเป็นจริงเมื่อแสดงหน้าเกี่ยวกับเราเท่านั้น

is_home() กลับจริงเมื่อในหน้ารายการโพสต์ซึ่งโดยปกติจะเป็นหน้าเว็บที่แสดง 10 โพสต์ล่าสุด

หากการตั้งค่าภายใต้หน้าแรกของคุณแสดงเป็นค่าเริ่มต้นหน้าแรกจะกลับมาจริงทั้งสำหรับis_front_page()และis_home()

ตัวอย่างของการใช้is_home():

  • คุณได้ตั้งค่าหน้าข้อความของคุณไปยังหน้าเว็บที่เรียกว่าข่าว
  • ผู้ใช้นำทางที่นั่นและในส่วนหัวที่คุณต้องการแสดงการนำทางเพิ่มเติม
  • คุณสามารถใช้is_home()การทำเช่นนี้

18
เผง ฉันแยกความแตกต่างดังนี้: is_front_page()คืนค่าจริงเมื่อดูหน้าเว็บไซต์ (ไม่ว่าจะแสดงดัชนีบล็อกโพสต์หรือหน้าคงที่) ในขณะที่is_home()ผลตอบแทนจริงเมื่อดูดัชนีโพสต์บล็อก (ไม่ว่าจะปรากฏในหน้าแรกหรือหน้าคง
Chip Bennett

3

ฉันค้นพบแล้วis_home()และis_front_page()ไม่ส่งมอบสิ่งที่คาดหวังสำหรับหลายไซต์ วิธีแก้ปัญหาของฉันโดยใช้สารพัดสิ่งใน PHP:

if($_SERVER['REQUEST_URI'] == '/') {
    // you must be on the home page
}

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


โปรดอธิบายอย่างละเอียดว่ามันไม่ส่งสิ่งที่คาดหวังได้อย่างไร
Christine Cooper

ในเว็บไซต์หลักหลายไซต์ถ้าคุณใช้รูปแบบใด ๆis_home()หรือis_front_page()บนหน้าคงที่หรือบล็อกฟังก์ชั่นทั้งสองจะกลับเท็จ
Dylan Pierce

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

ฉันใช้กล่อง wordpress VVV กับปลั๊กอินหลายไซต์: github.com/Varying-Vagrant-Vagrants/vvv-multisite อาจมีบางสิ่งที่ตั้งค่าผิดพลาดหรือไม่ โดยไม่คำนึงถึงเพียงแค่ทิ้งคำตอบสำหรับการหลีกเลี่ยงปัญหาหากมีผู้ใดมาพร้อมกับสถานการณ์ที่คล้ายกัน
Dylan Pierce

โค้ดของคุณเกือบจะสมบูรณ์แบบสิ่งเดียวคือ: จะทำอย่างไรถ้าติดตั้ง WP ในไดเรกทอรีย่อยเช่น / blog หรือ / wordpress กว่านี้จะไร้ประโยชน์
Remzi Cavdar

1

คุณต้องการใช้is_home()เมื่อคุณต้องการตรวจสอบว่าผู้ใช้กำลังดูรายการโพสต์บล็อกของคุณหรือไม่ (โดยปกติจะตั้งค่าให้แสดง 10 โพสต์ต่อหน้า) หากคุณมีhome.phpไฟล์ในธีมของคุณไฟล์นั้นจะปรากฏขึ้นเมื่อis_home()เงื่อนไขเป็นจริง

ต่อไปนี้อาจจะสามารถลบความสับสนบางอย่างเช่นกัน: เมื่อis_front_page()และis_home()เงื่อนไขทั้งสองเป็นจริงแม่แบบจะถูกนำมาใช้แทนfront-page.phphome.php

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