Estoy usando la *_add_form_fields
acción para agregar campos a una taxonomía personalizada. Uno de esos campos es wp_editor ().
El problema al que me enfrento es que cuando imprimo el editor de WordPress en la página así:
wp_editor('test', 'mydescription', array('textarea_name' => 'my_description'));
y luego, si hago clic en el editor en la página y cambio el valor predeterminado de test
a something else
la $_POST['my_description']
variable, todavía se establece entest
¿Debo agregar una configuración adicional a mi editor? ¿Hay alguna razón por la que no puedo cambiar el valor del área de texto?
EDITAR
A continuación hay un caso de prueba muy simple que muestra que esto está sucediendo. Coloque esto en su archivo functions.php y luego cree una nueva etiqueta . El valor publicado para 'my_description "no cambiará.
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();
EDITAR
Esto SOLO sucede cuando se adjunta a la acción "created_term". Si se adjunta a "edited_terms" funciona como se esperaba y creo que es el resultado de que ajax se utiliza en la página de términos de creación ... He actualizado el código de prueba para mostrar esto.
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 )
quizás algo más en tu código sea un problema?Respuestas:
El
<textarea>
elemento tinyMCE no se ve inicialmente por la función de serialización utilizada:Deberá llamar
tinyMCE.triggerSave()
para que sea visible.A continuación se muestra un fragmento simple que debería hacer el truco:
Esto en un archivo externo, en cola con
wp_enqueue_script()
; funcionó para la prueba que realicé.fuente
En su
edited_terms
función necesita guardar el valor y en suadd_tag_form_fields
necesita reemplazar sutest
con los datos guardados.algo como:
Ahora, si desea una forma mucho más fácil de agregar campos adicionales de todo tipo a sus etiquetas / categorías o formularios de edición de taxonomía personalizados sin reinventar la rueda, eche un vistazo a
TAX Meta Class
fuente
Según el códice para wp_editor, el primer argumento debería ser el contenido. Entonces, en lugar de 'probar', debe poner
$_POST['my_description']
si eso es lo que le gustaría que fuera el contenido inicial.fuente