Я использую *_add_form_fields
действие, чтобы добавить поля в пользовательскую таксономию. Одним из этих полей является wp_editor ().
Проблема, с которой я сталкиваюсь, заключается в том, что при выводе редактора WordPress на страницу примерно так:
wp_editor('test', 'mydescription', array('textarea_name' => 'my_description'));
а затем , если я нажимаю в редакторе на странице и изменить значение по умолчанию из test
к something else
в $_POST['my_description']
переменной еще установленtest
Должен ли я добавить дополнительную настройку в мой редактор? Есть ли причина, по которой я не могу изменить значение текстовой области?
РЕДАКТИРОВАТЬ
Ниже приведен очень простой тестовый пример, демонстрирующий это. Поместите это в ваш файл 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();
РЕДАКТИРОВАТЬ
Это ТОЛЬКО происходит при присоединении к действию "creation_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 )
может быть, что-то еще в вашем коде проблема?Ответы:
<textarea>
Элемент tinyMCE изначально не виден используемой функцией serialize:Вам нужно будет позвонить,
tinyMCE.triggerSave()
чтобы сделать его видимым.Ниже приведен простой фрагмент кода, который должен помочь:
Это во внешнем файле, поставленном в очередь
wp_enqueue_script()
; это сработало для теста, который я провел.источник
В вашей
edited_terms
функции вам нужно сохранить значение, а в вашей -add_tag_form_fields
заменитьtest
сохраненные данные.что-то вроде:
Теперь, если вы хотите гораздо более простой способ добавления дополнительных полей всех типов в ваши теги / категории или формы редактирования пользовательских таксономий, не изобретая колесо, взгляните на
TAX Meta Class
источник
Согласно кодексу для wp_editor, первым аргументом должен быть контент. Так что вместо «test» вы должны поставить,
$_POST['my_description']
если вы хотите, чтобы исходный контент был именно таким.источник