Korzystam z *_add_form_fields
akcji, aby dodać pola do niestandardowej systematyki. Jednym z tych pól jest wp_editor ().
Problem, z którym się zmagam, polega na tym, że kiedy wypisuję edytor WordPress na stronie, to:
wp_editor('test', 'mydescription', array('textarea_name' => 'my_description'));
a następnie, jeśli kliknę w edytorze na stronie i zmienić domyślną wartość z test
do something else
tej $_POST['my_description']
zmiennej jest nadal ustawiony natest
Czy powinienem dodawać dodatkowe ustawienia do mojego edytora? Czy istnieje powód, dla którego nie mogę zmienić wartości obszaru tekstowego?
EDYTOWAĆ
Poniżej znajduje się bardzo prosty przypadek testowy, który pokazuje to. Umieść to w pliku functions.php, a następnie utwórz nowy znacznik . Zaksięgowana wartość „my_description” nie zmieni się.
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();
EDYTOWAĆ
Dzieje się tak TYLKO podczas dołączania do akcji „Created_term”. Jeśli podłączysz się do „edytowanych_termów”, działa zgodnie z oczekiwaniami i myślę, że jest to wynikiem użycia ajax na stronie tworzenia terminów ... Zaktualizowałem kod testowy, aby to pokazać.
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 )
może coś innego w twoim kodzie jest problemem?Odpowiedzi:
<textarea>
element tinyMCE jest początkowo niewidoczny dla używanej funkcji serializacji:Musisz zadzwonić,
tinyMCE.triggerSave()
aby było widoczne.Poniżej znajduje się prosty fragment, który powinien załatwić sprawę:
To w zewnętrznym pliku, w kolejce
wp_enqueue_script()
; zadziałało w teście, który przeprowadziłem.źródło
W swojej
edited_terms
funkcji musisz zapisać wartość, aw swoimadd_tag_form_fields
musisz zastąpićtest
ją zapisanymi danymi.coś jak:
Teraz, jeśli chcesz o wiele łatwiejszego sposobu dodawania dodatkowych pól wszystkich typów do tagów / kategorii lub niestandardowych formularzy edycji taksonomii bez ponownego wymyślania koła, spójrz na
TAX Meta Class
źródło
Zgodnie z kodeksem dla wp_editor pierwszym argumentem powinna być treść. Zamiast „testować” powinieneś postawić,
$_POST['my_description']
jeśli taka jest początkowa treść.źródło