“ all” ใน isset คืออะไร ($ wp_filter ['all'])


10

ฉันเป็นมือใหม่ใน WordPress ฉันพยายามที่จะเข้าใจวิธีการสร้างหน้า XHTML ฉันเดาว่ามันเป็นฟังก์ชั่นของdo_action( 'hook-name' )แต่ฉันติดอยู่กับความเข้าใจของคำสั่งisset( $wp_filter['all] )เมื่ออ่านฟังก์ชั่น do_action เพราะฉันไม่เข้าใจความหมายของคำว่าallอะไร

มันเป็นคุณสมบัติ PHP หรือ WordPress หรือไม่

คำตอบ:


9

allเป็นเพียงสตริงที่นักพัฒนา WordPress เลือกที่จะทำงานแตกต่างจากเบ็ดอื่น ๆ เมื่อคุณแนบไปกับallโทรกลับของคุณจะยิงสำหรับตะขออื่น ๆ ทั้งหมด

ฉันจะไม่ใช้เวลามากเกินไปในการดูแหล่งที่มาของdo_actionเพียงแค่รู้ว่า:

  1. add_action( 'x', 'whatever' )จะหมายถึงการwhateverยิงเพื่อdo_action( 'x' )
  2. add_action( 'all', 'whatever' )จะหมายถึงwhateverไฟสำหรับทุกคน do_actionโดยไม่คำนึงถึงชื่อของเบ็ด

5

เงื่อนไขที่if ( isset($wp_filter['all']) ) {คุณสามารถหาได้ในฟังก์ชั่นการสร้างเบ็ดเหล่านี้:

  • apply_filters
  • apply_filters_ref_array
  • do_action
  • do_action_ref_array

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

ตกลงนี่คือวิธีสร้างตะขอ และ hooks มีชื่อและคุณสามารถตกปลาได้หลายชื่อฟังก์ชั่นในชื่อ hook เดียวกัน (read: tag)

ป้อนคำอธิบายรูปภาพที่นี่

แต่เมื่อคุณกำหนดฟังก์ชั่นทั้งหมดที่เกี่ยวข้องกับ hooks เฉพาะคุณจะต้องจัดเก็บชื่อ hook และชื่อฟังก์ชันที่เกี่ยวข้อง นี่คือเหตุผลที่เราช่วยเหลือglobal $wp_filterใน WordPress หากคุณส่งออกตัวแปรที่คุณจะได้รับเช่น ...

Array
(
    [pre_term_name] => Array
        (
            [10] => Array
                (
                    [sanitize_text_field] => Array
                        (
                            [function] => sanitize_text_field
                            [accepted_args] => 1
                        )

                    [wp_filter_kses] => Array
                        (
                            [function] => wp_filter_kses
                            [accepted_args] => 1
                        )

                )

            [30] => Array
                (
                    [_wp_specialchars] => Array
                        (
                            [function] => _wp_specialchars
                            [accepted_args] => 1
                        )

                )

        )

ขอให้เราอย่าเถียงกับชื่อของตัวแปรนี้ โดยส่วนตัวแล้วฉันจะเรียกมันว่าแตกต่างกันน่าจะเป็น$wp_hooksเพราะไม่ได้ใช้ชื่อนี้ อย่างไรก็ตามหากเราได้รับกลับมาในประวัติศาสตร์เราจะพบว่าdo_actionมีตั้งแต่@since 1.2.0และapply_filtersเป็น@since 0.71(เปิดตัว 9 มิถุนายน 2003) $wp_filterที่ช่วยให้คุณมีคำอธิบายที่ดีงามเหตุผลที่เรียกว่า เป็นไปได้มากที่สุดเนื่องจากตัวกรองถูกนำมาใช้ครั้งแรกใน WordPress หลังจากนั้นพวกเขาก็แนะนำการกระทำ

เพียงสร้างการพูดจาก @TheDeadMedic ...

add_action ('ทั้งหมด', 'อะไรก็ตาม') จะหมายถึงสิ่งที่ไฟไหม้สำหรับทุก do_action โดยไม่คำนึงถึงชื่อของเบ็ด

ฉันตั้งคำถามที่ว่าทำไมเราต้องการ$wp_filter['all']? เพียงไม่กี่ตัวอย่าง วิปัสสนาการทดสอบและความน่าจะเป็นของคุณสมบัติภายในระบบในรุ่น WordPress ในอนาคต

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