Estou usando a *_add_form_fields
ação para adicionar campos a uma taxonomia personalizada. Um desses campos é um wp_editor ().
O problema que estou enfrentando é que, quando eu mostro o editor do WordPress na página, da seguinte maneira:
wp_editor('test', 'mydescription', array('textarea_name' => 'my_description'));
e se eu clicar no editor na página e alterar o valor padrão de test
para something else
a $_POST['my_description']
variável ainda está definido comotest
Devo adicionar uma configuração adicional ao meu editor? Existe uma razão pela qual não posso alterar o valor da área de texto?
EDITAR
Abaixo está um caso de teste muito simples que mostra isso acontecendo. Coloque isso no seu arquivo functions.php e crie uma nova tag . O valor postado para 'minha_descrição "não será alterado.
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
Isso acontece SOMENTE ao anexar à ação "created_term". Se você anexar a "editado_termos", ele funcionará conforme o esperado e acho que isso é resultado do uso do ajax na página de criação de termo ... Atualizei o código de teste para mostrar isso.
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 )
talvez algo mais no seu código seja um problema?Respostas:
O
<textarea>
elemento tinyMCE é inicialmente invisível pela função de serialização usada:Você precisará ligar
tinyMCE.triggerSave()
para torná-lo visível.Abaixo está um trecho simples que deve fazer o truque:
Isso em um arquivo externo, enfileirado com
wp_enqueue_script()
; funcionou para o teste que eu conduzi.fonte
Na sua
edited_terms
função, você precisa salvar o valor e, na sua função,add_tag_form_fields
substituir a suatest
pelos dados salvos.algo como:
Agora, se você deseja uma maneira muito mais fácil de adicionar campos extras de todos os tipos às suas tags / categorias ou formulários personalizados de edição de taxonomia sem reinventar a roda, dê uma olhada
TAX Meta Class
fonte
De acordo com o codex para wp_editor, o primeiro argumento deve ser o conteúdo. Então, em vez de 'teste', você deve colocar
$_POST['my_description']
se é isso que você gostaria que fosse o conteúdo inicial.fonte