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

วิธีที่ปลั๊กอินและธีมขยายการทำงานหลักของ WordPress

2
ตัวกรองและ hooks ทำงานอย่างไรใน PHP อย่างแท้จริง
ตัวกรองและ hooks ใช้งานได้จริงใน WordPress อย่างไร ฉันกำลังถามเกี่ยวกับบางสิ่งที่ก้าวหน้า มันใช้งานอย่างไรใน PHP? เช่นวิธีการรวบรวม hooks ทั้งหมดจากปลั๊กอินที่แตกต่างกันและ "แนบ" ไปยังแกนหลัก ฯลฯ
21 filters  hooks 

3
รหัสนี้จะทำงานกี่ครั้ง? (หรือยายรวยแค่ไหน?)
ตัวอย่างสมมุติฐาน แต่การบังคับใช้ในโลกแห่งความเป็นจริง (สำหรับใครบางคนกำลังเรียนรู้เหมือนฉัน) รับรหัสนี้: <?php function send_money_to_grandma() { internetofThings("send grandma","$1"); } add_action('init','send_money_to_grandma'); add_action('init','send_money_to_grandma'); ตกลงตอนนี้ฉันเปิดไซต์ WP ของฉันและเข้าสู่ระบบฉันสำรวจสองสามหน้าใน Admin การกระทำ 'init' นั้นยิงได้ถึง100 ครั้งก่อนที่แบตเตอรี่แล็ปท็อปของฉันจะตาย คำถามแรก: เราส่งเงินให้คุณยายเท่าไหร่? มันคือ $ 1, $ 2, $ 100 หรือ $ 200 (หรืออย่างอื่น) หากคุณสามารถอธิบายคำตอบของคุณที่จะยอดเยี่ยม คำถามที่สอง: หากเราต้องการให้แน่ใจว่าเราส่งยายเพียง $ 1 วิธีที่ดีที่สุดในการทำเช่นนั้นคืออะไร ตัวแปรทั่วโลก (สัญญาณ) ที่ได้รับการตั้งค่า 'จริง' ครั้งแรกที่เราส่ง $ 1? หรือมีการทดสอบอื่น ๆ เพื่อดูว่ามีการกระทำเกิดขึ้นแล้วและป้องกันไม่ให้ทำการยิงหลายครั้งหรือไม่? …

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 

5
คุณใช้ CPT เป็นหน้าแรกเริ่มต้นได้อย่างไร
ฉันมีลูกค้าที่ไซต์จะใช้ประโยชน์จากประเภทโพสต์ที่กำหนดเองอย่างหนักเพื่อกำหนดค่าไซต์ของพวกเขา แต่ฉันอยู่ระหว่างก้อนหินและสถานที่ที่ยากสำหรับหน้าแรกที่ต้องการ ในความเป็นจริงหน้าแรกจะเป็น "หน้า" เฉพาะภายในเวิร์ดเพรส โดยทั่วไปจะมีหน้าสำหรับ: Intro , บล็อก , เกี่ยวกับเรา , ผลงานและติดต่อเรา พวกมันทั้งหมดจะถูกซ้อนทับกันเพื่อให้คุณสามารถเลื่อนจากหน้าหนึ่งไปอีกหน้าหนึ่ง สัญชาตญาณแรกของฉันคือการใช้หน้า (เรียกว่าหน้าแรก ) และฝังรหัสย่อที่ยอมรับทากหน้าและแสดงลำดับที่ถูกต้อง (เช่น[pageOrder]intro, blog, about-us, portfolio, contact-us[/pageOrder]) หน้าดังกล่าวจะใช้เทมเพลตหน้าแบบกำหนดเองเพื่อจัดวางสิ่งต่าง ๆ ควบคุมการวนซ้ำและเพิ่มการนำทางไปทางด้านซ้ายของหน้า แต่ทั้งหมดดูเหมือน klunky ทางออกที่ดีที่สุดของฉันคือการสร้างโพสต์แบบกำหนดเอง (เรียกว่าสแต็ค ) ที่อนุญาตให้ผู้ใช้วางตำแหน่งหน้าเว็บด้วยการลากวางและให้ CPT ดูแลเลย์เอาต์และการนำทางและอื่น ๆ ปัญหากับทางออกที่ดีที่สุดของฉันคือการตั้งค่า WordPress อนุญาตให้คุณเลือกหน้าสำหรับโฮมเพจเริ่มต้นของไซต์ แต่มันเชื่อมโยงกับประเภทโพสต์ของหน้าและฉันไม่แน่ใจว่าจะขอปรับเปลี่ยนเพื่อให้ผู้ใช้สามารถเลือกสแต็คเป็นหน้าแรกเริ่มต้น ดังนั้นฉันจะเชื่อมโยงไปยังที่ใดเพื่อเพิ่ม CPT ในรายการแบบหล่นลงของหน้าที่มีอยู่สำหรับโฮมเพจเริ่มต้น

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)

2
อะไรคือวิธีที่ถูกต้องที่จะขอเมื่ออัพเดทโพสต์
ฉันพยายามที่จะขอเมื่อโพสต์มีการปรับปรุง แต่เบ็ดทั้งหมดที่ฉันพยายามไม่ดำเนินการยกเว้น updated_post_meta add_action('updated_post_meta', 'my_function'); function my_function($post_id) { echo 'This is my post ID : '.$post_id; } ฉันได้ลองแล้วadd_action('save_post', 'my_function');แต่ไม่มี id ถูก echo out หรือบางทีข้อความนี้ได้ถูก echo แต่ไม่แสดงผลเนื่องจากส่วนหัวของการเปลี่ยนเส้นทางถูกส่งไป
19 php  hooks  actions  save-post 

3
ขอติดโหลดและโพสต์หน้า
ฉันจำเป็นต้องเรียกใช้ฟังก์ชั่นเมื่อโหลดโพสต์หรือหน้าเฉพาะ มีตะขอใดบ้างที่ให้ฉันตรวจสอบว่ามีการแสดงโพสต์ในระหว่างการโหลดหน้าเว็บหรือไม่

3
จะเพิ่ม Custom Blog Options ในแบบฟอร์มการตั้งค่าบล็อกใหม่ได้อย่างไร
ดูเหมือนจะเป็นข้อกำหนดที่เรียบง่าย แต่ฉันกำลังดิ้นรน: ฉันต้องการเพิ่มฟิลด์ตัวเลือกที่จะ "เพิ่มเว็บไซต์ใหม่" ตัวเลือกข้อความแบบธรรมดานั้นใช้ได้ ฉันจะทำสิ่งนี้ได้อย่างไร ฉันต้องบันทึกตัวเลือกบล็อกที่กำหนดเองนี้เมื่อสร้างเว็บไซต์ ฉันรู้ว่าฉันสามารถใช้ตะขอ 'wpmu_new_blog' ซึ่งส่งผ่าน$metaตัวแปรพร้อมตัวเลือกที่ให้มา แต่ฉันสงสัยว่ามีวิธีที่จะทำสิ่งนี้ทั้งหมดในขั้นตอนเดียวดังนั้นฉันไม่ต้องทำการค้นหา DB อีกครั้งหรือแย่กว่านั้น แทนที่ / แทนที่กระบวนการสร้างไซต์ทั้งหมดหรือไม่ หมายเหตุ: ฉันใช้ WP 3.3.1 พร้อมการตั้งค่า MultiSite ฉันกำลังเขียนปลั๊กอินที่แสดงไซต์ทั้งหมดที่ตรงกับค่าฟิลด์ที่กำหนดเองที่ระบุ (ลองเรียกมันว่า "type") นอกจากนี้ฉันเป็นนักพัฒนา PHP ที่มีประสบการณ์ แต่ฉันก็ยังค่อนข้างใหม่กับการแฮ็ค WordPress ดังนั้นโปรดคิดว่าฉันยังไม่คุ้นเคยกับฟังก์ชั่น WP และตะขอทั้งหมด

5
WP Cron ไม่ทำงานเมื่อเวลาผ่านไป
เป้าหมาย ฉันต้องการใช้wp_schedule_single_event( )เพื่อดำเนินการเหตุการณ์เดียวที่ส่งอีเมล 8 นาทีหลังจากผู้ใช้ส่งแบบฟอร์ม ปัญหา รหัสต่อไปนี้เป็นของฉันfunctions.php: function nkapi_send_to_system( $args ) { wp_mail( 'xxx', 'xxx', $args ); } add_action( 'nkapi_send', 'nkapi_send_to_system' ); function schedule_event( $id ) { wp_schedule_single_event( current_time( 'timestamp' ) + 480, 'nkapi_send', array( $id ) ); } และรหัสต่อไปนี้จะใช้ในการโทรschedule-event: schedule_event( $_SESSION['insert_id'] ); // the $_SESSION var contains an INT …
16 hooks  array  wp-cron  cron  events 

1
ฉันจะดูการกระทำทั้งหมดที่แนบกับเบ็ด“ add_action” ได้อย่างไร
ฉันทำงานกับแถบผู้ดูแลระบบและพยายามแก้ไขข้อบกพร่องของเมนูและลำดับความสำคัญของเมนู ฉันรู้ว่าการเรียกกลับหลายครั้งถูกผูกไว้กับการกระทำเช่นนี้: add_action( 'admin_bar_menu', 'wp_admin_bar_wp_menu', 10 ); ฉันจะดูได้อย่างไรว่ามีสายใดบ้างที่จะเรียกใช้เมื่อมีการเรียกขอคล้ายเบ็ดadmin_bar_menu?
16 plugins  php  hooks  actions  debug 

1
WooCommerce: เปลี่ยนลำดับการแสดงคำอธิบายสั้น ๆ ของผลิตภัณฑ์และราคา [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ WordPress Exchange Stack Stack ปิดให้บริการใน4 ปีที่แล้ว อีกครั้ง: https://modestmix.com/shop/benefit-teas/go-the-fuck-to-sleep/ ฉันต้องการย้ายราคา "$ 4.99– $ 24.99" ด้านล่างคำอธิบายสั้น ๆ ของผลิตภัณฑ์ "อย่างจริงจังดื่มถ้วยนี้ ... " ความคิดใด ๆ วิธีการทำเช่นนี้? ฉันมีธีมลูกอยู่แล้ว แต่ฉันไม่แน่ใจว่าไฟล์ WooCommerce ใดที่จำเป็นต้องถูกเขียนทับ

2
ทำไม hooks บางอันไม่ทำงานในบริบทของคลาส?
ฉันค่อนข้างนิ่งงันกับสิ่งนี้ ฉันใช้ add_action ภายในปลั๊กอินของฉันเพื่อทำบางสิ่ง - เพิ่มสคริปต์และสไตล์ไว้ที่ส่วนหัว wp_ajax ฯลฯ นี่คือการกระทำในโครงสร้าง __: function __construct(){ add_action('admin_menu', array($this, 'sph_admin_menu')); add_action('sph_header', array($this, 'sph_callback')); add_action('sph_header_items', array($this, 'sph_default_menu'), 1); add_action('sph_header_items', array($this, 'sph_searchform'), 2); add_action('sph_header_items', array($this, 'sph_social'), 3); //Below here they don't work. I have to call these outside of the class (but I need class variables within …
16 hooks  actions  oop 

2
การลงทะเบียนวิธีการเรียนเป็นตะขอโทรกลับ
ฉันไม่แน่ใจว่าฉันทำอย่างถูกต้องหรือไม่ ตามที่ฉันเข้าใจ ถ้าฉันมีคลาส foo และแถบวิธีคงที่ฉันสามารถลงทะเบียนเป็น callback โดยผ่านอาร์เรย์array("foo","bar")เป็นชื่อฟังก์ชั่น ถ้าผมมีตัวอย่างของการเรียนใน $ foo array($foo,'bar')หนึ่งและต้องการที่จะเรียกบาร์วิธีการที่ฉันผ่านอาร์เรย์ หากฉันต้องการลงทะเบียนการกระทำภายในชั้นเรียนนั้นจะใช้งานได้array($this,'bar')หรือไม่
16 plugins  hooks  oop 

3
ควรใช้เบ็ดอันใดเพื่อเพิ่มการกระทำที่มีการเปลี่ยนเส้นทาง
ฉันต้องการสร้างปลั๊กอินที่คว้าพารามิเตอร์ URL จากสตริงการสืบค้นเพื่อสร้างสตริงการสืบค้นใหม่สำหรับหน้าเดียวกัน ฉันกำลังติดตามหนังสือการพัฒนาปลั๊กอินมืออาชีพ WordPress ที่ยอดเยี่ยม แต่ฉันไม่แน่ใจว่าจะใช้ตะขอแบบไหนกับการกระทำนี้ นี่คือฟังก์ชั่นการกระทำของฉัน: add_action( 'init', 'tccl_redirect' ); function tccl_redirect() { header ( "Location: http://www.mysite.com/$mypage?$newparam=$newvalue" ); ?> ตะขอใดที่เหมาะสำหรับการเปลี่ยนเส้นทางส่วนหัว

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