Saya menggunakan *_add_form_fields
tindakan untuk menambahkan bidang ke taksonomi khusus. Salah satu bidang tersebut adalah wp_editor ().
Masalah yang saya hadapi adalah ketika saya menampilkan editor WordPress di halaman seperti ini:
wp_editor('test', 'mydescription', array('textarea_name' => 'my_description'));
dan kemudian jika saya klik di editor pada halaman dan mengubah nilai default dari test
ke something else
dalam $_POST['my_description']
variabel masih diatur ketest
Haruskah saya menambahkan pengaturan tambahan ke editor saya? Apakah ada alasan mengapa saya tidak dapat mengubah nilai textarea?
EDIT
Di bawah ini adalah test case yang sangat sederhana yang menunjukkan ini terjadi. Tempatkan ini di file functions.php Anda dan kemudian buat tag baru . Nilai yang diposting untuk 'my_description "tidak akan berubah.
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();
EDIT
HANYA ini terjadi ketika melampirkan ke tindakan "Created_term". Jika Anda melampirkan ke "edited_terms" berfungsi seperti yang diharapkan dan saya pikir ini adalah hasil dari ajax yang digunakan pada halaman buat istilah ... Saya telah memperbarui kode tes untuk menunjukkan ini.
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 )
:, mungkin ada masalah lain dalam kode Anda?Jawaban:
<textarea>
Elemen tinyMCE awalnya tidak terlihat oleh fungsi serialize yang digunakan:Anda perlu menelepon
tinyMCE.triggerSave()
untuk membuatnya terlihat.Di bawah ini adalah cuplikan sederhana yang dapat melakukan trik:
Ini dalam file eksternal, enqueued dengan
wp_enqueue_script()
; itu berhasil untuk tes yang saya lakukan.sumber
Di Anda
edited_terms
fungsi Anda, Anda perlu menyimpan nilai dan dalam Anda,add_tag_form_fields
Anda perlu mengganti Andatest
dengan data yang disimpan.sesuatu seperti:
Sekarang jika Anda ingin cara yang jauh lebih mudah untuk menambahkan bidang tambahan dari semua jenis ke tag / kategori Anda atau formulir edit taksonomi khusus tanpa menciptakan kembali roda lihatlah
TAX Meta Class
sumber
Menurut codex untuk wp_editor , argumen pertama harus berupa konten. Jadi, alih-alih 'menguji' Anda harus meletakkannya
$_POST['my_description']
jika itu yang Anda inginkan dari konten awal.sumber