J'utilise l' *_add_form_fields
action pour ajouter des champs à une taxonomie personnalisée. L'un de ces champs est wp_editor ().
Le problème auquel je suis confronté est que lorsque je génère l'éditeur WordPress sur la page comme suit:
wp_editor('test', 'mydescription', array('textarea_name' => 'my_description'));
puis si je clique dans l'éditeur sur la page et changer la valeur par défaut de test
à something else
la $_POST['my_description']
variable de est toujours fixé àtest
Dois-je ajouter un paramètre supplémentaire à mon éditeur? Y a-t-il une raison pour laquelle je ne peux pas modifier la valeur de la zone de texte?
ÉDITER
Voici un cas de test très simple qui montre que cela se produit. Placez-le dans votre fichier functions.php, puis créez une nouvelle balise . La valeur publiée pour 'my_description "ne changera pas.
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();
ÉDITER
Cela se produit UNIQUEMENT lors de l'attachement à l'action "created_term". Si vous attachez à "edit_terms" cela fonctionne comme prévu et je pense que c'est le résultat de l'ajax utilisé sur la page de création de termes ... J'ai mis à jour le code de test pour le montrer.
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 )
peut-être que quelque chose d'autre dans votre code pose problème?Réponses:
L'
<textarea>
élément tinyMCE n'est initialement pas vu par la fonction de sérialisation utilisée:Vous devrez appeler
tinyMCE.triggerSave()
pour le rendre visible.Voici un extrait simple qui devrait faire l'affaire:
Ceci dans un fichier externe, mis en file d'attente avec
wp_enqueue_script()
; cela a fonctionné pour le test que j'ai effectué.la source
Dans votre
edited_terms
fonction, vous devez enregistrer la valeur et dans votre,add_tag_form_fields
vous devez remplacer votretest
par les données enregistrées.quelque chose comme:
Maintenant, si vous voulez un moyen beaucoup plus simple d'ajouter des champs supplémentaires de tous types à vos balises / catégories ou des formulaires d'édition de taxonomie personnalisés sans réinventer la roue, jetez un œil à
TAX Meta Class
la source
Selon le codex pour wp_editor, le premier argument devrait être le contenu. Donc, plutôt que de «tester», vous devriez mettre
$_POST['my_description']
si c'est ce que vous souhaitez que le contenu initial soit.la source