web-dev-qa-db-fra.com

Remplacement de textarea par wp_editor

J'ai un système de publication front-end fonctionnel sur mon site que j'ai initialement conçu avec une simple zone de texte pour le contenu. J'essaie maintenant de permuter la zone de texte avec la fonction TinyMCE, wp_editor. Je peux facilement obtenir que l'éditeur affiche et fonctionne correctement, mais lors de la soumission du formulaire, le contenu est enregistré/n'est pas enregistré de manière étrange.

Le comportement est le suivant: lorsque j'essaie de publier le message pour la première fois, le contenu ne semble pas enregistrer, laissant la zone de texte vide. Si je modifie le message et le sauvegarde à nouveau, le contenu OLD (de la première sauvegarde) réapparaîtra comme par magie et les nouveaux éléments disparaîtront. Après cela, il ne me donne rien de manière aléatoire ou uniquement l'ancien contenu.

J'ai regardé autour de moi, mais je n'ai trouvé que cette question: wp_editor textarea value not update qui ne s'applique pas exactement à ma situation et je ne suis pas sûr que l'une de ces solutions soit vraiment ce que J'ai besoin.

Je ne sais pas quel code serait le meilleur pour aider à dépanner, mais voici ma zone de texte d'origine:

<textarea name="user_post_content" id="user_post_content" placeholder="Enter your content..." class="inputwide"><?PHP echo ((!empty($post_obj->post_content))?$post_obj->post_content:''); ?></textarea>

Et voici ce que je veux le remplacer par:

<?php wp_editor($post_obj->post_content, 'userpostcontent', 'textarea_name=user_post_content' ); ?>

Voici un Pastebin du fichier de modèle de page entier: http://Pastebin.com/tncmQGDA

J'espère que quelqu'un pourra vous aider.

1
Eckstein

Vérifiez avec les paramètres d'un tableau - $settings (tableau) (facultatif) Un tableau d'arguments. - sur la fonction wp_editor.

wp_editor(
    $post_obj->post_content,
    'userpostcontent',
    array( 'textarea_name' => 'user_post_content' )
)
2
bueltge

Je travaillais sur le même genre de projet et trouve ce plugin jquery utile

http://jhtmlarea.codeplex.com/

Cordialement

1
Himanshu Jain

Eh bien, je l'ai corrigé. Il semble que ce soit parce que mon formulaire utilise JavaScript pour les erreurs et les messages de confirmation. Je vais enfin prendre la main sur le développeur d'origine qui a fait cela pour moi et il a ajouté ceci:

   jQuery('#user_post_submit,#user_post_preview,#user_post_savedraft').click(function(){
        var req;
        jQuery('#user_post_content').val(tinyMCE.get('user_post_content_editor').getContent());
        switch(jQuery(this).attr('id')){
            case 'user_post_submit':
                req='publish';
                break;
            case 'user_post_savedraft':
                req='save_draft';
                break;
            case 'user_post_preview':
                req='post_preview';
                break;

        }

Ce qui a permis à cette fonction de fonctionner correctement:

wp_editor($content, 'user_post_content_editor');

Cela semble tellement simple maintenant que c'est fait ...

Merci pour toutes vos suggestions cependant!

0
Eckstein