คำถามติดแท็ก actions

ชื่อของกิจกรรมที่ดำเนินการตามจุดเฉพาะทั่วทั้งแกน WordPress

7
remove_action หรือ remove_filter ที่มีคลาสภายนอก?
ในสถานการณ์ที่ปลั๊กอินมีการห่อหุ้มวิธีการภายในคลาสจากนั้นลงทะเบียนตัวกรองหรือการดำเนินการกับหนึ่งในวิธีการเหล่านั้นคุณจะลบการกระทำหรือตัวกรองได้อย่างไรถ้าคุณไม่มีสิทธิ์เข้าถึงอินสแตนซ์ของคลาสนั้นอีกต่อไป ตัวอย่างเช่นสมมติว่าคุณมีปลั๊กอินที่ทำสิ่งนี้: class MyClass { function __construct() { add_action( "plugins_loaded", array( $this, 'my_action' ) ); } function my_action() { // do stuff... } } new MyClass(); เมื่อสังเกตว่าตอนนี้ฉันไม่มีวิธีเข้าถึงอินสแตนซ์ฉันจะยกเลิกการลงทะเบียนชั้นเรียนได้อย่างไร สิ่งนี้: remove_action( "plugins_loaded", array( MyClass, 'my_action' ) );ดูเหมือนจะไม่ใช่วิธีที่ถูกต้อง - อย่างน้อยก็ดูเหมือนจะไม่ทำงานในกรณีของฉัน
59 actions  filters 

9
ผ่านพารามิเตอร์เพื่อกรองและฟังก์ชั่นการกระทำ
เป็นวิธีที่จะส่งผ่านพารามิเตอร์ของตัวเองให้กับฟังก์ชั่นในหรือadd_filter add_actionตัวอย่างเช่นดูในรหัสต่อไปนี้: function my_content($content, $my_param) { do something... using $my_param here ... return $content; } add_filter('the_content', 'my_content', 10, 1); ฉันสามารถส่งพารามิเตอร์ของตัวเองได้หรือไม่? สิ่งที่ต้องการ: add_filter('the_content', 'my_content($my_param)', 10, 1) หรือ add_filter('the_content', 'my_content', 10, 1, $my_param)

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

7
add_action อ้างอิงคลาส
เป็นไปได้ที่จะอ้างอิงคลาสแทนฟังก์ชั่นใน 'add_action' หรือไม่? ดูเหมือนจะไม่สามารถคิดออก นี่เป็นเพียงตัวอย่างพื้นฐานของฟังก์ชันที่เป็นปัญหา add_action( 'admin_init', 'MyClass' ); class MyClass { function __construct() { .. This is where stuff gets done .. } } ใช่นั่นมันใช้งานไม่ได้ ฉันยังลอง: $var = new MyClass(); add_action( 'admin_init', array( &$var ) ); และ: $var = new MyClass(); add_action( 'admin_init', array( &$var, '__construct' ) ); และนอกจากนี้ยังมี: …
38 actions 

5
จะทราบได้อย่างไรว่าฟังก์ชั่นใดบ้างที่เชื่อมโยงกับแอ็คชั่น / ตัวกรอง
มีวิธีที่จะรู้ว่าฟังก์ชั่นใดบ้างที่เกี่ยวกับเบ็ดนั้น ตัวอย่างเช่นหากฉันต้องการทราบว่าฟังก์ชั่นใดบ้างที่wp_headเกี่ยวกับตะขอ
32 hooks  actions  filters 

1
เหตุใดการกระทำของ save_post จึงเริ่มทำงานเมื่อสร้างโพสต์ใหม่
ฉันประหลาดใจกับความจริงที่ว่าฟังก์ชั่นของฉันที่ฉันติดไว้กับsave_postการกระทำนั้นเกิดขึ้นเมื่อฉันคลิกลิงก์ "โพสต์ใหม่" ในแผงควบคุมของผู้ดูแลระบบ หมายเหตุ - นี่เป็นก่อนที่ฉันจะกดSaveหรือUpdateและจะเริ่มทันทีไม่ใช่หลังจากเวลาผ่านไปหรืออัปเดตอัตโนมัติ ในทางกลับกันเมื่อฉันพิมพ์บางอย่างแล้วกดPublishหรือUpdateหรือSave Draftปุ่มคำสั่ง echo ที่ฉันใส่ไว้ในตัวจัดการการกระทำของฉันไม่ได้สะท้อนออกมาดังนั้นจึงปรากฏว่าการกระทำนั้นไม่ได้ยิงในเวลาอื่น สิ่งนี้อาจไม่เกี่ยวข้อง นี่คือรหัสของฉัน: add_action('save_post', 'MyNS\save_event_metabox', 10, 2); function save_event_metabox($post_id, $post){ echo "<h1>YES!</h1>"; } YES นี้สะท้อน (ที่ด้านบนของหน้า) เมื่อกดลิงก์ "โพสต์ใหม่" แต่ไม่ได้สะท้อนเมื่อฉันพิมพ์บางสิ่งบางอย่างแล้วกดUpdateหรือหรือPublish Save Draftนี่ดูเหมือนจะขัดแย้งกับเอกสารเกี่ยวกับsave_postการกระทำและwp_insert_post()ฟังก์ชั่น ใครช่วยเคลียร์สิ่งนี้ให้ฉันได้บ้าง?

1
รับรายการการกระทำที่ลงทะเบียนทั้งหมด
ฉันพยายามดีบักปลั๊กอินที่ฉันไม่ได้พัฒนาและต้องการแสดงรายการการลงทะเบียนทั้งหมด ฉันได้อ่านหัวข้อนี้ดังนั้น: WordPress: ฉันจะรับฟังก์ชั่นที่ลงทะเบียนทั้งหมดสำหรับตัวกรอง 'the_content' ได้อย่างไร - StackOverflow แต่มันเกี่ยวกับเบ็ดเดียวและเกี่ยวกับตัวกรองไม่ใช่การกระทำ มีตัวแปรอะไรที่ชอบ$wp_filterหรือบางอย่าง?

1
วิธีทดสอบ wp_cron
นี่เป็นคำถามที่โง่ ... ฉันกำหนดการกระทำที่จะทำงานทุกชั่วโมง: if(!wp_next_scheduled('my_hourly_events')) wp_schedule_event(time(), 'hourly', 'my_hourly_events'); add_action('my_hourly_events', 'the_function_to_run'); function the_function_to_run(){ echo 'it works!'; } ฉันจะทดสอบได้อย่างไรว่าทำงานได้โดยไม่รอชั่วโมง :) ฉันลองเพิ่มwp_clear_scheduled_hook('my_hourly_events');ก่อนรหัสนี้และเพิ่มwp_cron()หลังจาก แต่ฉันไม่เห็นว่าฟังก์ชั่นของฉันทำงานอยู่ ... แก้ไข: ตกลงฉันเพิ่มtrigger_error()ฟังก์ชั่นของฉันตรวจสอบบันทึกข้อผิดพลาด apache และมันมี :) ดังนั้นตอนนี้ฉันยิ่งสับสน: wp-cron สามารถทำงานในพื้นหลังได้อย่างไร? เพราะเห็นได้ชัดว่าเป็นสิ่งที่เกิดขึ้นถ้าฉันไม่เห็นผลลัพธ์ ... สิ่งนี้ดูเหมือนจะไม่ทำงานในบริบทของวัตถุ ทำไม?
28 events  actions  cron  wp-cron 

2
มีตะขอที่ทำงานหลังจากที่ผู้ใช้เข้าสู่ระบบหรือไม่?
ฉันกำลังเขียนปลั๊กอินที่ดึงข้อมูลผู้ใช้เพิ่มเติมจากบริการระยะไกลและฉันต้องการให้เรียกใช้งานฟังก์ชันทุกครั้งที่ผู้ใช้ลงชื่อเข้าใช้ มีตะขอที่ถูกไล่ออกหลังจากเข้าสู่ระบบที่ฉันสามารถเพิ่มการกระทำได้หรือไม่?
28 hooks  login  actions 

1
วิธี จำกัด การค้นหาสำหรับโพสต์หัวเรื่อง?
มีวิธี จำกัด การค้นหาสำหรับโพสต์ชื่อหรือไม่ ฉันรู้ว่าฉันสามารถแก้ไขไฟล์ core query.php แต่ต้องมีวิธีที่จะทำกับ hooks ใช่ไหม? ขอบคุณล่วงหน้า!
26 search  hooks  actions 

3
วิธีจัดคิวสคริปต์ในหน้าเพิ่ม / แก้ไขหน้าโพสต์ที่กำหนดเองได้อย่างไร
ฉันพยายามจัดคิวสคริปต์ JS เฉพาะเมื่อมีคนเพิ่มหรือแก้ไขประเภทโพสต์ที่ฉันกำหนดเองซึ่งเรียกว่า "สูตรอาหาร" ขณะนี้สคริปต์ใช้งานได้เมื่อฉันทำสิ่งนี้: if (is_admin()){ wp_enqueue_script( 'my-script' ); } แต่สิ่งนี้จะโหลดในหน้าผู้ดูแลระบบทุกครั้งฉันคิดว่าฉันต้องขอฟังก์ชั่น แต่ฉันไม่รู้ว่ามันควรจะเป็นอะไร ขอบคุณล่วงหน้า!

4
ความแตกต่างระหว่าง do_action และ add_action
คำถามนี้อาจผิดฉันไม่แน่ใจ เพราะฉันไม่ชัดเจนในเรื่องนี้ ฉันรู้ว่าadd_actionมันใช้เพื่อเชื่อมโยงฟังก์ชันของเรากับฟังก์ชันที่ระบุ ยกตัวอย่างเช่นadd_action('wp_head'.'myfunc');ในขณะนี้สิ่งที่เคยอยู่ในรหัสจะถูกดำเนินการในmyfunc wp_head()ชัดเจน แต่ฉันสงสัยdo_actionว่ามันทำอะไร? ฉันคิดว่ามันถูกใช้เพื่อสร้าง hook ของเราเองเช่น hooks ที่มีอยู่แล้ว (wp_head, wp_footer, ฯลฯ .. ) ถ้าฉันถูกต้องทุกคนสามารถแสดงคำตอบที่เข้าใจง่ายพร้อมตัวอย่างง่ายๆ ฉันลองใช้ความแตกต่างทางอินเทอร์เน็ต แต่ทุกคนก็ชี้ไปที่ความแตกต่างระหว่าง add_action และ add_filter ฉันไม่ต้องการไปที่นั่นเพราะก่อนอื่นฉันต้องการชี้แจงเรื่องนี้แล้วฉันจะย้ายไปที่นั่น ใครช่วยฉันได้บ้าง แก้ไขหลังจากโพสต์คำถาม function custom_register() { echo '<script>jQuery(document).ready(function(){alert("Learning Hooks");});</script>'; } do_action('custom'); add_action('custom','custom_register'); ฉันลองสิ่งนี้ในปลั๊กอิน แต่ฉันไม่ได้รับข้อความแจ้งเตือน แต่เมื่อฉันขอฟังก์ชั่นเดียวกันกับwp_headมันก็ทำงานได้ดี /******************working****************/ add_action('wp_head','custom_register');
20 hooks  actions 

1
จะสร้าง API สำหรับปลั๊กอินได้อย่างไร?
ฉันได้พัฒนาปลั๊กอินสำหรับ WordPress ปลั๊กอินส่วนใหญ่ที่ฉันได้พัฒนาใช้สองหรือสามชั้นจึงไม่ใหญ่เท่า Buddypress หรือ WooCommerce ฉันวางแผนที่จะพัฒนาปลั๊กอินโอเพ่นซอร์สสองตัวเพื่อส่งมอบระบบที่ซับซ้อนบางอย่าง (ไม่สามารถแชร์รายละเอียดได้ในขณะนี้ แต่หลังจากนั้นในระหว่างการพัฒนา) ซึ่งผู้พัฒนารายอื่นสามารถปรับแต่งฟังก์ชั่นและระบบสำหรับพวกเขาจะต้องเหมือนกัน . ในขณะที่ฉันตรวจสอบไฟล์ปลั๊กอินเหล่านั้นและตระหนักว่าพวกเขาได้ลงทะเบียนการกระทำและตัวกรองของตนเองซึ่งนักพัฒนาสามารถปรับเปลี่ยนได้ตามความต้องการ อย่างไรก็ตามปัญหาของฉันไม่สามารถเข้าใจได้อย่างสมบูรณ์ว่าฉันควรเขียนปลั๊กอินอย่างไรในขณะที่คนอื่นมีความยืดหยุ่นในการแทนที่ฟังก์ชั่นรวมทั้งเพิ่มของพวกเขาเอง ฉันรู้ว่าเป็นการยากที่จะให้คำตอบที่ชัดเจน แต่ฉันต้องการไกด์นำเที่ยวบางชนิดเพื่อให้ฉันไปในทิศทางที่ถูกต้อง ฉันต้องลงทะเบียนการกระทำและตัวกรองของฉันเองหรือไม่? ถ้าใช่เป็นอย่างไร ถ้าไม่เช่นนั้นตัวเลือกของฉันคืออะไร? คำแนะนำของคุณจะช่วยฉันได้มาก ... ขอบคุณ

2
ปัญหาการทำความเข้าใจ Apply_filters ()
ใน Apply_filters () apply_filters( $tag, $value, $var ... ); ฉันมีปัญหาในการพันศีรษะ$valueและ$var. ฉันอ่านโคเด็กซ์และดูเหมือนว่า$valueสามารถแก้ไข$varได้ แต่ฉันไม่พบตัวอย่างใด ๆ ดูเหมือนว่าจะใช้เป็นวิธีการส่งตัวแปร ในกรณีใดความแตกต่างระหว่างสิ่งนั้นกับ$varอะไร
19 filters  hooks  actions 

5
ฉันจะแก้ไขข้อมูลโพสต์ก่อนที่จะบันทึกได้อย่างไร
ฉันมีปลั๊กอินและฉันต้องการเรียกใช้เนื้อหาโพสต์ผ่านตัวกรองบางตัวก่อนที่จะถูกบันทึกลงในฐานข้อมูล จากการดูplugin apiฉันเห็นว่า hooks สองตัวที่ดูเหมือนว่าพวกเขาอาจมีประโยชน์: save_post wp_insert_post ปัญหาเดียวคือมันดูเหมือนว่าsave_postไม่จำเป็นต้องส่งคืนตัวแปรดังนั้นฉันจึงไม่รู้วิธีกรองเนื้อหาและwp_insert_postดูเป็นเอกสาร ฉันต้องการทำสิ่งนี้: add_action('whatever_hook_name','my_function'); function my_function($post_content){ return $post_content.' <br> This post was saved on '.time(); } ฉันจะทำสิ่งที่มีประโยชน์มากกว่าผนวกเวลาคือการใช้ตัวกรอง regex บางตัว แต่นี่เป็นตัวกรอง / แอ็คชั่นทั่วไปที่ฉันพยายามเพิ่ม ปรับปรุง โปรดทราบว่าฉันต้องการที่จะสกัดกั้นข้อมูลเกี่ยวกับวิธีที่จะถูกบันทึกไว้ในฐานข้อมูล - ไม่ใช่เมื่อมันถูกแสดงในโพสต์ (เช่น: ไม่โดยการเพิ่มตัวกรองไปthe_content)

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