ฉันกำลังใช้การ*_add_form_fields
กระทำเพื่อเพิ่มเขตข้อมูลลงในอนุกรมวิธานที่กำหนดเอง หนึ่งในนั้นคือ wp_editor ()
ปัญหาที่ฉันเผชิญคือเมื่อฉันส่งออกตัวแก้ไข WordPress บนหน้าดังนี้:
wp_editor('test', 'mydescription', array('textarea_name' => 'my_description'));
แล้วถ้าผมคลิกในการแก้ไขบนหน้าและเปลี่ยนค่าเริ่มต้นจากtest
การตัวแปรยังคงตั้งค่าให้something else
$_POST['my_description']
test
ฉันควรเพิ่มการตั้งค่าเพิ่มเติมในโปรแกรมแก้ไขของฉันหรือไม่ มีเหตุผลที่ฉันไม่สามารถเปลี่ยนค่าของ textarea?
แก้ไข
ด้านล่างเป็นกรณีทดสอบอย่างง่าย ๆ ที่แสดงสิ่งนี้เกิดขึ้น สถานที่แห่งนี้ในแฟ้ม functions.php ของคุณแล้วสร้างใหม่แท็ก ค่าที่โพสต์สำหรับ 'my_description "จะไม่เปลี่ยนแปลง
class Test{
function __construct() {
add_action('add_tag_form_fields', array($this, 'add_tag_form_fields'));
add_action('created_term', array($this, 'created_term'));
}
function add_tag_form_fields($tag){
if ( current_user_can( 'publish_posts' ) ): ?>
<div class="form-field">
<?php wp_editor('test', 'mydescription', array('textarea_name' => 'my_description')); ?>
</div>
<?php
}
function created_term($tag){
echo '<pre>';
print_r($_POST);
echo '</pre>';
die();
}
}
new Test();
แก้ไข
สิ่งนี้จะเกิดขึ้นเฉพาะเมื่อแนบกับการกระทำ "created_term" หากคุณแนบกับ "edited_terms" จะทำงานได้ตามที่คาดหวังและฉันคิดว่านี่เป็นผลมาจากการใช้ ajax ในหน้าคำสร้าง ... ฉันได้อัปเดตรหัสทดสอบเพื่อแสดงสิ่งนี้แล้ว
Array ( [action] => add-tag [screen] => edit-post_tag [taxonomy] => post_tag [post_type] => post [_wpnonce_add-tag] => 4f7d3df228 [_wp_http_referer] => /wp-admin/edit-tags.php?taxonomy=post_tag [tag-name] => Test99 [slug] => [description] => [my_description] => something else )
อาจมีปัญหาอย่างอื่นในรหัสของคุณหรือไม่