คำถามติดแท็ก save-post

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()ฟังก์ชั่น ใครช่วยเคลียร์สิ่งนี้ให้ฉันได้บ้าง?

7
เพิ่มการตรวจสอบและการจัดการข้อผิดพลาดเมื่อบันทึกฟิลด์ที่กำหนดเองหรือไม่
ฉันมีฟังก์ชั่นที่กำหนดฟิลด์ที่กำหนดเองในประเภทโพสต์ สมมติว่าฟิลด์นั้นเป็น "subhead" เมื่อบันทึกโพสต์แล้วฉันต้องการตรวจสอบความถูกต้องของอินพุตและแสดงข้อความแสดงข้อผิดพลาดบนหน้าจอแก้ไขโพสต์หากจำเป็น สิ่งที่ต้องการ: // Handle post updating function wpse_update_post_custom_values($post_id, $post) { // Do some checking... if($_POST['subhead'] != 'value i expect') { // Add an error here $errors->add('oops', 'There was an error.'); } return $errors; } add_action('save_post','wpse_update_post_custom_values',1,2); ฉันพยายามเชื่อมโยงสิ่งนี้กับการกระทำ save_post แต่ฉันไม่สามารถหาวิธีจัดการข้อผิดพลาดได้ ดูเหมือนจะไม่มีวัตถุข้อผิดพลาดที่ส่งผ่านไปยังฟังก์ชั่นและถ้าฉันสร้าง WP_Error obj ของฉันเองและส่งคืนมันก็ไม่ได้รับความเคารพจากกลไกใด ๆ ที่แยกแยะข้อผิดพลาดในหน้าแก้ไขการโพสต์ ขณะนี้ฉันมีข้อความแสดงข้อผิดพลาดบนหน้าภายในกล่องเมตาที่กำหนดเองของฉัน แต่นี่น้อยกว่าอุดมคติ - …


4
การส่งข้อความข้อผิดพลาด / คำเตือนจากกล่องเมตาไปที่“ admin_notices”
ฉันมีเมตาบ็อกซ์ธรรมดาที่อัปเดตฟิลด์โพสต์ที่กำหนดเอง (โดยใช้update_post_meta()) ฉันจะส่งข้อผิดพลาดหรือข้อความเตือนไปยังหน้าถัดไปหลังจากที่ผู้ใช้เผยแพร่ / อัปเดตการโพสต์และไม่ได้กรอกหนึ่งในช่องเมตาบ็อก (หรือกรอกข้อมูลด้วยข้อมูลที่ไม่ถูกต้อง)

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 

5
ป้องกันไม่ให้โพสต์ถูกเผยแพร่หากไม่ได้กรอกฟิลด์ที่กำหนดเอง
ฉันมีประเภทโพสต์ที่กำหนดเองEventที่มีฟิลด์วันที่ / เวลาที่กำหนดเองเริ่มต้นและสิ้นสุด (เป็นเมท็อกซ์ในหน้าจอแก้ไขโพสต์) ฉันต้องการตรวจสอบให้แน่ใจว่ากิจกรรมไม่สามารถเผยแพร่ (หรือกำหนดเวลา) โดยไม่ต้องกรอกวันที่เนื่องจากจะทำให้เกิดปัญหากับเทมเพลตที่แสดงข้อมูลกิจกรรม (นอกเหนือจากข้อเท็จจริงที่ว่ามันเป็นข้อกำหนดที่จำเป็น!) อย่างไรก็ตามฉันต้องการที่จะมีเหตุการณ์ฉบับร่างที่ไม่มีวันที่ที่ถูกต้องในขณะที่พวกเขากำลังเตรียมการ ฉันกำลังคิดที่save_postจะทำการตรวจสอบ แต่ฉันจะป้องกันไม่ให้เกิดการเปลี่ยนแปลงสถานะได้อย่างไร แก้ไข 1:นี่คือเบ็ดที่ฉันใช้ตอนนี้เพื่อบันทึก post_meta // Save the Metabox Data function ep_eventposts_save_meta( $post_id, $post ) { if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; if ( !isset( $_POST['ep_eventposts_nonce'] ) ) return; if ( !wp_verify_nonce( $_POST['ep_eventposts_nonce'], plugin_basename( __FILE__ ) ) ) …

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

2
วิธีหลีกเลี่ยงการวนซ้ำไม่สิ้นสุดใน save_post callback
ฉันใช้เว็บไซต์นี้จำนวนมากเพื่อแก้ไขปัญหาของฉัน แต่ครั้งนี้ฉันไม่ประสบความสำเร็จในการค้นหาและตอบปัญหาของฉัน ฉันได้รับและวงวนไม่สิ้นสุดเมื่อใช้wp_update_postภายในฟังก์ชันที่เรียกsave_postใช้ ฉันรู้ว่านี่เป็นปัญหาทั่วไป แต่ฉันไม่สามารถหาวิธีที่จะหลีกเลี่ยงได้ ฉันต้องการบันทึกคำสั่งของโพสต์ของฉัน (ซึ่งเป็นประเภท 'โพสต์' ประเภทโพสต์) ดังนั้นฉันจึงสร้างเมตาบ็อกที่กำหนดเองซึ่งมีองค์ประกอบ html- เรียงลำดับได้บางส่วน ในแต่ละองค์ประกอบจะมีแท็กอินพุตที่ซ่อนพร้อมชื่อ = 'sectionorder []' ดังนั้นเมื่อฉันคลิกที่ปุ่ม 'ปรับปรุง' WordPress มาตรฐานอาร์เรย์ที่มี ID ทั้งหมดของโพสต์ (ตามลำดับ) จะถูกส่งผ่าน POST ดังนั้นนี่คือรหัสที่ฉันเรียกอาร์เรย์และต้องการบันทึกคำสั่ง: // Update section sort order $sectionorder = $_POST['sectionorder']; if (isset($sectionorder)) { // Avoid error if there is no sections added yet foreach( $sectionorder as …

2
Metabox พร้อมด้วยช่องทำเครื่องหมายไม่ได้ปรับปรุง
ฉันพยายามตั้งค่า meta_box ด้วยช่องทำเครื่องหมายเดียวทุกอย่างเป็นไปด้วยดี แต่ถ้าฉันยกเลิกการเลือกและบันทึกโพสต์มันจะทำเครื่องหมายอีกครั้งเมื่อทำเครื่องหมายฉันได้ดูแล้ว แต่ไม่พบข้อผิดพลาด ลองดูรหัสของฉัน function am_checkbox_option() { global $post; $custom = get_post_custom($post->ID); $front_event = $custom["front_event"][0]; wp_nonce_field(__FILE__, 'am_front_event'); if ( $front_event ) { $checked = "checked=\"checked\""; } else { $checked = ""; } ?> <label>Display Content? (type yes):</label> <input type="checkbox" name="front_event" value="true" <?php echo $checked; ?> /> <?php } …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.