คู่มือขั้นสูงเพื่อแท็กแบบมีเงื่อนไขของเวิร์ดเพรส

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


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

แท็กที่มีเงื่อนไขของ WordPress ทำงานอย่างไร

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

รหัสตรงไปตรงมา สิ่งที่เราทำด้านล่างคือการตรวจสอบว่าหน้าเว็บที่แสดงเป็นหน้าดัชนีบล็อกหรือไม่ ถ้าเป็นเช่นนั้นเราจะแสดงข้อความของเรา.

<?PHP

ถ้า (is_home ()) {

เสียงสะท้อน "ยินดีต้อนรับสู่บล็อกของเรา!!";

}

?>

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

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

  • is_home () – ตรวจสอบว่ามีการแสดงดัชนีโพสต์บล็อกหรือไม่ นี่อาจเป็นหรือไม่ใช่โฮมเพจของคุณก็ได้เช่นกัน.
  • is_front_page () – ตรวจสอบว่าหน้าแรกของคุณกำลังแสดงอยู่หรือไม่ สิ่งนี้ทำงานได้ไม่ว่าการตั้งค่าหน้าแรกของคุณจะถูกตั้งค่าให้แสดงโพสต์บล็อก (เช่นดัชนีบล็อก) หรือหน้าคงที่.
  • เป็นโสด() – ตรวจสอบเพื่อดูว่ามีการแสดงโพสต์เดี่ยวหรือไม่ (ยกเว้นไฟล์แนบ).
  • is_attachment () – ตรวจสอบว่ามีการแสดงสิ่งที่แนบมาหรือไม่.
  • is_page () – ตรวจสอบว่ามีการแสดงหน้าเว็บหรือไม่.
  • is_singular () – ตรวจสอบว่ามีการโพสต์สิ่งที่แนบมาหรือหน้าเดียวจะถูกแสดง True ถูกส่งคืนหากตรงตามเงื่อนไขใดเงื่อนไขหนึ่ง.
  • is_category () – ตรวจสอบว่าหน้าจัดเก็บหมวดหมู่กำลังแสดงอยู่หรือไม่.
  • is_search () – ตรวจสอบว่ามีการแสดงหน้าผลการค้นหาหรือไม่.
  • is_tag () – ตรวจสอบว่ามีการแสดงแท็กไฟล์เก็บถาวรหรือไม่.
  • is_author () – ตรวจสอบว่าหน้าเอกสารสำคัญของผู้แต่งกำลังแสดงอยู่หรือไม่.
  • is_archive () – ตรวจสอบว่ามีการแสดงหน้าเอกสารเก็บถาวรประเภทใดรวมถึงหมวดหมู่แท็กวันที่และจดหมายเหตุผู้แต่ง.
  • is_sticky () – ตรวจสอบว่ามีการกำหนดโพสต์เป็น เหนียว.
  • is_multi_author () – ตรวจสอบว่ามีผู้เขียนมากกว่าหนึ่งคนได้เผยแพร่โพสต์บนเว็บไซต์หรือไม่ True ถูกส่งคืนหากมีผู้เผยแพร่โพสต์สองคนขึ้นไป หากมีผู้เขียนเพียงคนเดียวที่โพสต์เผยแพร่หรือหากไม่มีการโพสต์เลยก็จะส่งคืน false.

มีแท็กตามเงื่อนไขหกครั้งที่คุณจะพบว่ามีประโยชน์ แท็กเหล่านี้อ้างถึงหน้าวันที่เก็บถาวร ตัวอย่างเช่น URL http://www.yourwebsite.com/2013/12/ เป็นหน้าเก็บถาวรตามเดือน.

หากแท็กตามเงื่อนไขใด ๆ ต่อไปนี้ส่งคืนค่าจริง is_archive () ก็จะเป็นจริงเช่นกัน.

  • is_date () – ตรวจสอบว่าเป็นหน้าเก็บถาวรตามวันที่.
  • is_year () – ตรวจสอบว่าเป็นหน้าเก็บถาวรตามปีหรือไม่.
  • is_month () – ตรวจสอบว่าเป็นหน้าเก็บถาวรตามเดือนหรือไม่.
  • is_day () – ตรวจสอบว่าเป็นหน้าเก็บถาวรตามวันหรือไม่.
  • is_time () – ตรวจสอบว่าเป็นหน้าเก็บถาวรตามเวลาหรือไม่.
  • is_new_day () – ตรวจสอบว่าวันนี้เป็นวันใหม่หรือไม่ หากโพสต์ปัจจุบันได้รับการเผยแพร่ในวันที่แตกต่างจากโพสต์ก่อนหน้านี้ที่เผยแพร่มันจะกลับมาจริง เท็จจะถูกส่งกลับถ้าโพสต์ทั้งสองถูกเผยแพร่ในวันเดียวกัน.

คุณจะเจอแท็กที่มีเงื่อนไขเช่น is_home () และ is_single () บ่อยครั้งอย่างไรก็ตามคุณไม่จำเป็นต้องจำแท็กที่มีเงื่อนไขเหล่านี้ทั้งหมด ผู้ใช้ WordPress ส่วนใหญ่อ้างถึง codex ของ WordPress สำหรับแท็กเงื่อนไขที่เหมาะสมเมื่อพวกเขาต้องการตั้งค่าฟังก์ชันตามเงื่อนไข.

ตัวอย่างแท็กแบบมีเงื่อนไข

แท็กแบบมีเงื่อนไขจำนวนมากอนุญาตให้ส่งพารามิเตอร์ไปยังฟังก์ชัน สิ่งนี้ช่วยให้คุณสามารถควบคุมเงื่อนไขที่ต้องปฏิบัติก่อนที่จะดำเนินการบางอย่าง is_page () เป็นตัวอย่างที่ดีของสิ่งนี้ แท็กช่วยให้คุณตรวจสอบว่าหน้าเว็บที่กำลังแสดงเป็นหน้าเว็บหรือไม่ is_page () จะคืนค่าเป็นจริงหากหน้าใด ๆ ปรากฏขึ้นอย่างไรก็ตามคุณต้องระบุพารามิเตอร์ $ page หากคุณต้องการเฉพาะเจาะจงมากขึ้น พารามิเตอร์ $ page สามารถเป็น ID หน้าชื่อหน้าหรือกระสุนหน้า.

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

ในการทำเช่นนี้คุณต้องกำหนดพารามิเตอร์ $ page หาก ID หน้า 10 คุณสามารถเปิดข้อความสั่งแบบมีเงื่อนไขของคุณด้วยสิ่งนี้:

ถ้า (is_page (10)) {

สามารถระบุหน้าเฉพาะได้โดยส่งชื่อหน้าไปยังฟังก์ชัน.

ถ้า (is_page (‘เกี่ยวกับเรา’)) {

กระสุนหน้ายังสามารถใช้ ดังที่คุณอาจจำได้ว่าตัวบุ้งหน้าเป็นตัวระบุชื่อที่ไม่ซ้ำที่ท้าย URL หาก URL เกี่ยวกับหน้าของคุณคือ www.yourwebsite.com/about-our-company/ หน้ากระสุนจะเป็นเรื่องเกี่ยวกับ บริษัท ของเรา.

ถ้า (is_page (‘เกี่ยวกับ บริษัท ของเรา’)) {

แท็กที่มีเงื่อนไขบางอย่างเช่น is_page () สามารถส่งพารามิเตอร์ในอาร์เรย์ได้เช่นกัน ข้อความสั่งแบบมีเงื่อนไขต่อไปนี้จะคืนค่าเป็นจริงหากเงื่อนไขข้อใดข้อหนึ่งเป็นจริง.

if (is_page (array (10, ‘About Us’, ‘about-our-company’))) {

เป็นเรื่องปกติสำหรับนักพัฒนาในการตั้งค่ามากกว่าหนึ่งเงื่อนไขเมื่อใช้แท็กตามเงื่อนไข ให้เรากลับไปที่ภารกิจง่าย ๆ ในการแสดงข้อความต้อนรับสู่บล็อกของผู้เยี่ยมชม นี่คือสิ่งที่เว็บไซต์ขององค์กรอาจต้องการเพิ่มไปยังพื้นที่บล็อกของพวกเขา แต่ไม่ไปยังพื้นที่อื่น ๆ ของเว็บไซต์ของพวกเขา (เช่นหน้าแรก, หน้าติดต่อ, เกี่ยวกับหน้า ฯลฯ ).

พวกเขาสามารถทำได้โดยใช้แท็กตามเงื่อนไข is_home () และ is_single (); ซึ่งแสดงถึงดัชนีบล็อกและโพสต์เดียวตามลำดับ ในการแสดงข้อความในทั้งสองพื้นที่คุณจำเป็นต้องใช้ตัวดำเนินการตรรกะหรือ || นี่คือตัวอย่างในรหัสด้านล่าง เริ่มต้นถ้าคำสั่งตรวจสอบว่าหน้าเป็นดัชนีบล็อกหรือโพสต์เดียว หากเป็นจริงข้อความนั้นจะปรากฏขึ้น.

<?PHP

if (is_home () || is_single ()) {

เสียงสะท้อน "ยินดีต้อนรับสู่บล็อกของเรา!!";

}

?>

ตัวดำเนินการเชิงตรรกะอื่นที่มีประโยชน์มากคือตัวดำเนินการ AND &&. สิ่งนี้จะถูกใช้เมื่อคุณต้องการให้เงื่อนไขสองเงื่อนไขหรือมากกว่านั้นเป็นจริงก่อนที่บางสิ่งจะถูกดำเนินการ คำสั่งต่อไปนี้หากตรวจสอบว่าหน้าเป็นทั้งหน้าเก็บถาวรและจัดหมวดหมู่ภายใต้หมวดหมู่ข่าว ในหน้าหมวดหมู่ข่าวข้อความต้อนรับจะปรากฏขึ้น จะไม่มีสิ่งใดปรากฏในหมวดหมู่อื่น.

<?PHP

ถ้า (is_archive () && is_category (‘ข่าว’)) {

เสียงสะท้อน "ยินดีต้อนรับสู่คลังข่าว";

}

?>

ผู้ประกอบการ AND และ OR สามารถรวมกันได้ ตัวอย่างด้านล่างนี้นำมาจากแม่แบบ functions.php ของชุดรูปแบบ WordPress เริ่มต้นที่ยี่สิบสาม ฟังก์ชั่นนี้ใช้เพื่อแสดงชื่อหน้าในเบราว์เซอร์ แต่มีเพียงส่วนหนึ่งของฟังก์ชั่นที่แสดงด้านล่าง.

คำสั่ง if ส่งคืนค่าจริงถ้ามีคำอธิบายไซต์และผู้ใช้กำลังดูดัชนีบล็อกหรือโฮมเพจ คำอธิบายไซต์สามารถป้อนผ่านฟิลด์สโลแกนในพื้นที่การตั้งค่าทั่วไปของคุณ หากคุณกรอกข้อมูลในฟิลด์นี้ในดัชนีบล็อกและโฮมเพจของคุณแถบชื่อเรื่องจะแสดง“ ชื่อไซต์ | คำอธิบายไซต์” (หมายเหตุ: ตัวคั่นจะแสดงขึ้นโดยใช้สตริง $ sep ในรหัสด้านล่าง) ถ้าคุณทำไม่ได้แถบชื่อเรื่องจะแสดง“ ชื่อไซต์”.

อย่างที่คุณเห็นคือ is_home และ _is_front_page ถูกมองว่าเป็นเอนทิตีเดียวเนื่องจากตัวดำเนินการ OR นี่คือเหตุผลที่พวกเขาถูกห่อไว้ในวงเล็บ.

ถ้า ($ site_description && (is_home () || is_front_page ()))
$ title = "$ title $ sep $ site_description";

อีกหนึ่งตัวดำเนินการเชิงตรรกะของ PHP ที่คุณสามารถใช้ได้คือตัวดำเนินการที่ไม่ใช่! นี่เป็นการใช้งานได้จริงในหลาย ๆ สถานการณ์ ตัวอย่างเช่นให้เราบอกว่าคุณต้องการแสดงภาพถ่ายในทุกหน้าของคุณยกเว้นที่เก็บถาวรของคุณ ไม่จำเป็นต้องตั้งค่าเงื่อนไขแบบยาวที่ถามว่า“ นี่คือหน้าแรกหรือนี่คือโพสต์เดียวหรือนี่คือหน้า…” เป็นประโยชน์มากกว่าที่จะถามว่า“ นี่ไม่ใช่หน้าเก็บถาวรหรือไม่”.

หากต้องการทำสิ่งนี้เพียงเพิ่มเครื่องหมายอัศเจรีย์หน้าแท็กที่มีเงื่อนไข รหัสด้านล่างแสดงให้เห็นว่าการปฏิบัตินี้ตรงไปตรงมาอย่างไร มันจะแสดงภาพในทุกหน้าของเว็บไซต์ของคุณยกเว้นหน้าเก็บถาวร.

<?PHP

if (! is_archive ()) { ?>

<?PHP

}

?>

จนถึงตอนนี้เราได้ดูตัวอย่างพื้นฐานของแท็กที่มีเงื่อนไขซึ่งมีการใช้งานบางอย่างหรือไม่ดำเนินการ (เช่นถ้า A เป็นจริงให้ทำ B) ในทางปฏิบัติมักจะมีการดำเนินการอีกอย่างที่ต้องทำหากไม่ตรงตามเงื่อนไข นอกจากนี้อาจมีเงื่อนไขหลายประการที่สามารถตอบสนองได้โดยมีการตอบกลับที่แตกต่างกันไป.

แทนที่จะเขียนคำแถลงส่วนบุคคลจำนวนมากสำหรับเรื่องนี้มันเป็นประโยชน์ในการใช้งบอื่นและ elseif สิ่งนี้จะช่วยให้คุณสามารถควบคุมสิ่งที่ปรากฏบนเว็บไซต์ของคุณได้ดียิ่งขึ้น.

เราสามารถแสดงสิ่งนี้ได้โดยใช้ตัวอย่าง ให้เราบอกว่าคุณต้องการแสดงโลโก้ที่แตกต่างบนเว็บไซต์ของคุณในส่วนต่างๆของเว็บไซต์ของคุณ คุณจะทำอย่างไร คำตอบนั้นง่าย: เราใช้คำสั่ง else และ elseif รหัสด้านล่างแสดงให้เห็นว่าสามารถทำได้อย่างไร.

<?PHP

if (is_home () || is_front_page ()) { ?>

<?PHP

} elseif (is_category ()) { ?>

<?PHP

} elseif (is_single ()) { ?>

<?PHP

} elseif (is_page ()) { ?>

<?PHP

}

อื่น { ?>

<?PHP

}

?>

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

งบ Elseif ยังใช้ในส่วนอื่น ๆ ของ WordPress แม่แบบส่วนใหญ่ function.php ใช้พวกเขาและธีม WordPress จำนวนมากใช้พวกเขาเพื่อเปลี่ยนวิธีแสดงชื่อเว็บไซต์ของพวกเขาในเบราว์เซอร์.

แท็กเงื่อนไขเพิ่มเติม

มีแท็กที่มีเงื่อนไขเพิ่มเติมจำนวนมาก นักพัฒนาซอฟต์แวร์เหล่านี้ส่วนใหญ่ใช้ในธีมและปลั๊กอิน.

ด้านล่างนี้เป็นรายการของแท็กที่มีเงื่อนไขอื่น ๆ ที่คุณสามารถใช้ได้.

  • is_tax () – ตรวจสอบว่าหน้าการจัดเก็บภาษีอนุกรมวิธานที่กำหนดเองแสดงขึ้นหรือไม่.
  • has_term () – ตรวจสอบว่าโพสต์ปัจจุบันมีหนึ่งในเงื่อนไขที่ระบุ.
  • taxonomy_exists () – ตรวจสอบว่ามีชื่ออนุกรมวิธานอยู่หรือไม่.
  • post_type_exists () – ตรวจสอบว่ามีประเภทโพสต์อยู่หรือไม่.
  • is_post_type_hierarchical ($ post_type) – ตรวจสอบว่าประเภทการโพสต์เป็นลำดับชั้นหรือไม่.
  • is_post_type_archive () – ตรวจสอบว่าหน้าจัดเก็บของประเภทโพสต์ที่เฉพาะเจาะจงนั้นแสดงขึ้นมาหรือไม่.
  • is_comments_popup () – ตรวจสอบเพื่อดูว่าหน้าต่างป๊อปอัพความคิดเห็นเปิดอยู่หรือไม่.
  • comments_open () – ตรวจสอบว่าอนุญาตให้แสดงความคิดเห็นสำหรับโพสต์หรือหน้าปัจจุบัน.
  • pings_open () – ตรวจสอบว่าอนุญาตให้ส่ง Ping หรือไม่สำหรับโพสต์หรือหน้าปัจจุบัน.
  • is_feed () – ตรวจสอบว่าแบบสอบถามปัจจุบันใช้สำหรับฟีดหรือไม่.
  • is_404 () – ตรวจสอบว่ามีข้อผิดพลาด 404 แสดงขึ้นมาหรือไม่.
  • is_paged () – ตรวจสอบว่าหน้าเว็บที่คุณกำลังดูอยู่นั้นเป็นหน้าเพจที่นอกเหนือจากหน้าที่มีอยู่หรือไม่ โพสต์และหน้าจะแบ่งหน้าเมื่อคุณใช้ quicktag หน้าถัดไปในเนื้อหาของคุณเพื่อแยกโพสต์ขนาดใหญ่.
  • is_trackback () – ตรวจสอบว่ามีการใช้ trackback หรือไม่.
  • is_admin () – ตรวจสอบว่าผู้ใช้เข้าสู่พื้นที่ผู้ดูแลระบบ ไม่ได้ใช้เพื่อตรวจสอบว่าผู้ใช้มีสิทธิ์ของผู้ดูแลระบบหรือไม่เฉพาะพวกเขาลงชื่อเข้าใช้แดชบอร์ด WordPress.
  • is_page_template () – ตรวจสอบว่าหน้าที่กำลังดูอยู่นั้นกำลังใช้เทมเพลตของหน้าเว็บหรือไม่ สามารถกำหนดเทมเพลตหน้าเฉพาะได้หากจำเป็น.
  • is_preview () – ตรวจสอบว่ามีการดูโพสต์บล็อกในโหมดร่างหรือไม่.
  • has_excerpt () – ตรวจสอบว่าโพสต์ปัจจุบันมีข้อความที่ตัดตอนมา สามารถกำหนดโพสต์เฉพาะ.
  • has_nav_menu () – ตรวจสอบว่าตำแหน่งเมนูมีเมนูที่กำหนดหรือไม่ ผู้พัฒนาธีมใช้เพื่อแสดงบางอย่างในกรณีที่ผู้ใช้ไม่ได้เพิ่มเมนู.
  • in_the_loop () – ตรวจสอบว่าผู้โทรยังคงอยู่ในลูป WordPress หรือไม่.
  • is_active_sidebar (ดัชนี $) – ตรวจสอบว่ามีการใช้แถบด้านข้างหรือไม่.
  • is_multisite () – ตรวจสอบว่ารองรับหลายไซต์หรือไม่.
  • is_main_site () – ตรวจสอบว่าเว็บไซต์หลายรายการเป็นไซต์หลักในเครือข่ายหรือไม่.
  • is_super_admin () – ตรวจสอบว่าผู้ใช้เป็นผู้ดูแลระบบขั้นสูงภายในเครือข่ายหรือไม่.
  • is_plugin_active ($ plugin) – ตรวจสอบว่าเปิดใช้งานปลั๊กอินหรือไม่.
  • is_child_theme () – ตรวจสอบว่ามีการใช้ธีมลูกหรือไม่.
  • current_theme_supports (คุณสมบัติ $) – ตรวจสอบว่าชุดรูปแบบรองรับคุณสมบัติเฉพาะเช่นรูปแบบโพสต์หรือรูปภาพที่โดดเด่น.

ตรวจสอบด้วย: วิธีลบ Taxonomies เริ่มต้น.

แท็กแบบมีเงื่อนไขเป็นแนวคิด WordPress ที่สำคัญ เนื่องจากมันมีประโยชน์เพียงใดมีธีม WordPress บางส่วนที่ออกแบบมาโดยไม่มีพวกเขา เมื่อคุณเข้าใจข้อความอื่น ๆ แล้วข้อความ elseif และตัวดำเนินการเชิงตรรกะเช่น AND, OR และ Not; คุณจะสามารถแก้ไขปัญหาการทำงานตามเงื่อนไขใด ๆ.

ฉันหวังว่าคู่มือนี้จะช่วยให้คุณเรียนรู้วิธีใช้แท็ก WordPress แบบมีเงื่อนไขในธีมของคุณ.

หากคุณชอบบทความนี้จากนั้นเข้าร่วม ThemeLab บน พูดเบาและรวดเร็ว.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map