ทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับ WordPress hooks
เผยแพร่แล้ว: 2015-07-11ติดตะขอ WordPress หรือไม่?
มีอะไรหลายอย่างเกิดขึ้นภายใต้ประทุนเนื่องจาก WordPress ทำงานเพื่อแสดงองค์ประกอบที่จำเป็นสำหรับเว็บไซต์ของคุณ แต่ละหน้าประกอบด้วยฟังก์ชันและการสืบค้นฐานข้อมูลค่อนข้างน้อย แกนหลักของ WordPress และธีมทำงานร่วมกันเพื่อส่งออกข้อความ รูปภาพ สไตล์ชีต และไฟล์อื่นๆ ด้วยความช่วยเหลือของเบราว์เซอร์ ชิ้นส่วนเหล่านี้ทั้งหมดจะถูกตีความและรวมเป็นหน้าเว็บเดียว Hooks ให้ความสามารถในการปรับแต่ง ขยาย และปรับปรุง WordPress
Hook ได้รับการตั้งชื่ออย่างเหมาะสมเพราะเราสามารถ "เชื่อมต่อ" WordPress เพื่อดึง แทรก หรือแก้ไขข้อมูล หรือทำงานอื่นๆ เบื้องหลังได้อย่างแท้จริง เรียกได้ว่าเรา "แขวน" โค้ดที่เรากำหนดเองไว้บนตะขอเหล่านั้น อย่างที่เราทราบกันดีว่าการปรับเปลี่ยนคอร์ของ WordPress ไม่ใช่ความคิดที่ดี ด้วยเหตุนี้ action hooks และ filter hooks ใน WordPress จึงเป็นวิธีที่ดีที่สุดในการเปลี่ยนที่มีอยู่หรือสร้างฟังก์ชันการทำงานใหม่
ประเภทของตะขอ
ตะขอเป็นส่วนที่จำเป็นในการปรับแต่ง ตะขอมีสองประเภทหลัก: ตะขอแอ็คชั่นและตะขอกรอง แต่ละรายการมีบางอย่างที่แตกต่างกัน ดังนั้นจึงควรทำความเข้าใจว่าเมื่อใดควรใช้ตัวเลือกใด
เบ็ดไม่สามารถโยนเข้าไปได้ทุกที่ ต้องมีบางอย่างที่จะ "เกี่ยว" จำเป็นต้องมีจุดดำเนินการสำหรับเบ็ดนั้น ข่าวดีก็คือว่าในแกนหลักของ WordPress มี hooks ในตัวที่สามารถอ้างอิงได้

ทำไมต้องใช้ตะขอ
สามารถเปลี่ยนแปลงได้หลายอย่างด้วย hooks เนื่องจากฟังก์ชันหลักของ WordPress จำนวนมากใช้การดำเนินการและตัวกรอง การทำความเข้าใจ hooks เป็นสิ่งจำเป็นอย่างยิ่งสำหรับทุกคนที่พัฒนาด้วย WordPress และสำหรับนักออกแบบที่ต้องการปรับเปลี่ยน WordPress หรือพฤติกรรมของธีม
ตะขอแอคชั่น
Action hooks บ่งบอกว่ามีบางอย่างเกิดขึ้น เพื่อไม่ให้สับสนกับเหตุการณ์ที่เกิดขึ้นเอง การดำเนินการจะถูกทริกเกอร์โดยเหตุการณ์เฉพาะที่เกิดขึ้นใน WordPress ตัวอย่างของกิจกรรมอาจเป็นสิ่งต่างๆ เช่น การเผยแพร่โพสต์ การเปลี่ยนธีม หรือการเปิดใช้งานปลั๊กอิน การดำเนินการช่วยให้คุณเพิ่มฟังก์ชันพิเศษ ณ จุดเฉพาะในการประมวลผลหน้า Action hook สามารถทำสิ่งต่างๆ เช่น:
- แก้ไขข้อมูลในฐานข้อมูล WordPress
- แก้ไขสิ่งที่แสดงในเบราว์เซอร์
- ส่งอีเมลเมื่อมีเหตุการณ์เกิดขึ้น
- เพิ่มวิดเจ็ต เมนู หรือข้อความที่กำหนดเองลงในเพจ

ตัวอย่าง Action Hook
add_action( $hook, $function_to_add, $priority, $accepted_args );
พารามิเตอร์ที่จำเป็นของฟังก์ชัน add_action คือ hook และฟังก์ชันที่จะเพิ่ม รวมถึงลำดับความสำคัญเป็นตัวเลือก ด้วยค่าจำนวนเต็มตามมาตราส่วน 1 ถึง 999 ตัวเลขนี้จะกำหนดลำดับความสำคัญของฟังก์ชันสำหรับเบ็ดเฉพาะนั้น คุณอาจไม่จำเป็นต้องใช้ แต่พารามิเตอร์สุดท้ายจะใช้เมื่อคุณต้องการส่งหรือยอมรับหลายอาร์กิวเมนต์
มาดูแอคชั่นเบ็ดพื้นฐานกัน:
// This is the function, name it accordingly
function custom_welcome_text() { ?>
<div class="optional-custom-class">Hello WordPress!</div>
<?php }
// Action function that outputs the function above into the theme hook
add_action( 'welcome_hook', 'custom_welcome_text', 5 );
เบ็ดพื้นฐานนี้จะเพิ่ม “สวัสดี WordPress” ที่ด้านบนของหน้า มีลำดับความสำคัญเป็น 5 ตัวเลขที่ต่ำกว่าสอดคล้องกับการดำเนินการก่อนหน้า โดยค่าเริ่มต้น มีการตั้งค่าเป็น 10 ดังนั้นตัวอย่างนี้จะดำเนินการก่อนค่าเริ่มต้น

ตะขอกรอง
มาดูสถานการณ์ทั่วไปกันและวิธีที่ขอเกี่ยวตัวกรองเข้ามาเล่น คิดถึงทุกครั้งที่ผู้ใช้ของคุณเยี่ยมชมไซต์ของคุณและโหลดโพสต์เพื่อให้พวกเขาอ่าน เป็นส่วนหนึ่งของวงจรชีวิตของหน้า WordPress WordPress จะสืบค้นฐานข้อมูลสำหรับโพสต์นั้น จากนั้นจึงส่งกลับไปยังเบราว์เซอร์ พร้อมให้ผู้ใช้อ่าน ฟังดูง่าย แต่ก่อนที่จะแสดงเนื้อหา WordPress จะเรียกใช้ข้อมูลผ่านตัวกรองใดๆ ที่สร้างขึ้น ตะขอกรองเหล่านี้สามารถสร้างขึ้นได้อย่างง่ายดายเมื่อจำเป็น
คิดแบบนี้: การกระทำจะถูกทริกเกอร์โดยเหตุการณ์เฉพาะ แต่ตัวกรองอนุญาตให้มีการสกัดกั้นและแก้ไขข้อมูลในขณะที่ประมวลผล Filter hook ถูกใช้เมื่อคุณต้องการสกัดกั้น จัดการ หรือส่งคืนข้อมูลก่อนที่จะแสดงผลไปยังเบราว์เซอร์หรือบันทึกข้อมูลจากเบราว์เซอร์ไปยังฐานข้อมูล ตัวอย่างเช่น คุณอาจต้องการแทรกคลาส CSS อื่นในองค์ประกอบ WordPress HTML หรือลงทะเบียนประเภทฟิลด์เมตาเพิ่มเติม ทั้งสองสิ่งนี้สามารถดำเนินการได้ด้วยขอเกี่ยวตัวกรอง

ตัวกรองอยู่ระหว่างฐานข้อมูลและเบราว์เซอร์เมื่อ WordPress สร้างหน้า นอกจากนี้ ยังอยู่ระหว่างเบราว์เซอร์และฐานข้อมูล เนื่องจาก WordPress เพิ่มโพสต์และความคิดเห็นใหม่ลงในฐานข้อมูล ด้วยเหตุนี้ ตะขอกรองจึงสามารถทำสิ่งที่มีประโยชน์ เช่น:
- เพิ่มข้อมูลลงในฐานข้อมูลหรือส่งไปที่หน้าจอเบราว์เซอร์
- จัดการข้อมูลที่ออกมาจากฐานข้อมูลก่อนที่จะเข้าสู่เบราว์เซอร์หรือมาจากเบราว์เซอร์ก่อนที่จะเข้าสู่ฐานข้อมูล
ตัวอย่างเบ็ดกรอง
ในตัวอย่างด้านล่าง เราจะมาดูกันว่า filter hook ทำงานอย่างไรกับเนื้อหา เบ็ดนี้เริ่มทำงานก่อนที่เนื้อหาจะถูกนำไปใช้ ใส่ในฐานข้อมูล หรือแสดงผลโดย WordPress สำหรับการดูบนหน้าจอ สิ่งนี้จะเปลี่ยนแปลงข้อมูลเมื่อขอเกี่ยวตัวกรองเริ่มทำงาน
ฟังก์ชัน add_filter คือสิ่งที่เราต้องเชื่อมต่อกับตัวกรอง อาร์กิวเมนต์อาจดูคุ้นเคยสำหรับคุณ add_filter เหมือนกับของ add_action มาต่อกันที่ตัวกรอง WordPress the_content ซึ่งถูกเรียกก่อนที่จะแสดงเนื้อหาใด ๆ ของโพสต์ ในตัวอย่างง่ายๆ นี้ ตัวกรองจะช่วยให้เราเพิ่มหมายเหตุลิขสิทธิ์ให้กับทุกโพสต์ได้ ณ จุดนี้ ตัวกรองจะดำเนินการกับข้อมูลที่ส่งถึงพวกเขา
add_filter( 'the_content', 'add_copyright_notice' );
function add_copyright_notice( $content )
{
return $content . " <br>This content is copyrighted.";
}
โปรดทราบว่าเมื่อคุณใช้ตัวกรอง คุณต้องส่งคืนบางสิ่งเสมอ มิฉะนั้นสิ่งของจะพัง
การเพิ่มตะขอให้กับธีม
เมื่อเพิ่ม hooks และ filter ให้กับธีม ตรวจสอบให้แน่ใจว่าคุณกำลังทำงานในธีมย่อย สาเหตุหลักคือ หากคุณทำงานในธีมพาเรนต์ การแก้ไขเหล่านี้อาจถูกเขียนทับได้หากมีการอัพเดตไฟล์ธีม
หวังว่าคุณจะมีความเข้าใจที่ดีขึ้นเกี่ยวกับตะขอ สิ่งที่พวกเขาสามารถทำได้ และวิธีที่พวกเขาสามารถช่วยได้ ตะขอสามารถเป็นเรื่องง่ายมาก ซับซ้อนมาก หรือที่ไหนสักแห่งในระหว่างนั้น เมื่อคุณมีแนวคิดพื้นฐานแล้ว คุณจะติดใจในทันที
