web-dev-qa-db-fra.com

wp_editor et WPAlchemy gâchent les balises lors de la mise à jour

lors de l'utilisation de wp_editor, je colle mon texte dans l'éditeur visuel. Si je passe à l'éditeur HTML, tous mes tags sont là. Jusqu'à présent, pas de problème. Lorsque je mets à jour la chose, toutes mes balises apparaissent dans mon éditeur visuel et en HTML, elles deviennent quelque chose comme:

<p><strong>

Si je mets à jour à nouveau, les balises apparaissent sur ma page. Je suis donc coincé dans l'édition de mon texte une seule fois. Si je mets à jour plusieurs fois, les balises apparaissent et tout se gâte.

Quelqu'un a une idée de ce qui va se passer?

J'utilise cette ligne pour créer le wp_editor:

<?php $metabox->the_field('shortText'); ?>
<p>
    <label for="<?php $metabox->the_name(); ?>">Text</label>
    <?php wp_editor($metabox->get_the_value(), $metabox->get_the_name(), $settings); ?>
</p>

Merci!

MODIFIER:

Le problème est avec

$metabox->get_the_value()

Il analyse le code avec les balises, ce qui gâche tout. Existe-t-il un moyen d'analyser la valeur dans l'éditeur HTML et non dans l'éditeur visuel?

SOURCE AJOUTÉE:

Contribution:

Faire des sorties de groupe et briser l’isolement. Venez vivre une activité entre gens qui vivent les mêmes choses, sentir la force du groupe plutôt que l’isolement.

Sortie (var_dump):

string(594) "<p><strong>Faire des sorties de groupe et briser l’isolement. Venez vivre une activité entre gens qui vivent les mêmes choses, sentir la force du groupe plutôt que l’isolement.</strong></p> <p><strong></strong>Le Regroupement vous propose des sorties de groupe pour faciliter le plaisir en vivant des expériences comme vivent les « autres familles normales ». Nos sorties sont dépourvues d’obstacles et se vivent sans les soucis de se faire identifier parmi le groupe.</p>"

Et puis la fonction get_the_value ();

/**
 * @since    1.0
 * @access    public
 */
function get_the_value($n = NULL, $collection = FALSE)
{
    $this->_meta(NULL, TRUE);

    $value = null;

    if ($this->in_loop)
    {
        if(isset($this->meta[$this->name]))
        {
            $n = is_null($n) ? $this->subname : $n ;

            if(!is_null($n))
            {
                if ($collection)
                {
                    if(isset($this->meta[$this->name][$this->current]))
                    {
                        $value = $this->meta[$this->name][$this->current];
                    }
                }
                else
                {
                    if(isset($this->meta[$this->name][$this->current][$n]))
                    {
                        $value = $this->meta[$this->name][$this->current][$n];
                    }
                }
            }
            else
            {
                if ($collection)
                {
                    if(isset($this->meta[$this->name]))
                    {
                        $value = $this->meta[$this->name];
                    }
                }
                else
                {
                    if(isset($this->meta[$this->name][$this->current]))
                    {
                        $value = $this->meta[$this->name][$this->current];
                    }
                }
            }
        }
    }
    else
    {
        $n = is_null($n) ? $this->name : $n ;

        if(isset($this->meta[$n]))
        {
            $value = $this->meta[$n];
        }
    }

    if (is_string($value) || is_numeric($value))
    {
        if ($this->in_template)
        {
            return htmlentities($value, ENT_QUOTES, 'UTF-8');
        }
        else
        {
            // http://wordpress.org/support/topic/call-function-called-by-embed-shortcode-direct
            // http://phpdoc.wordpress.org/trunk/WordPress/Embed/WP_Embed.html#run_shortcode

            global $wp_embed;

            return do_shortcode($wp_embed->run_shortcode($value));
        }
    }
    else
    {
        // value can sometimes be an array
        return $value;
    }
}
1
Elggetto

J'ai rencontré le même problème lorsque j'utilisais la nouvelle fonction wp_editor sur une metabox à alimentation alchimique. J'ai fait quelques recherches et trouvé une solution qui utilise "html_entity_decode". Jetez un coup d'œil à la référence ici: https://Gist.github.com/1838037

2
Jonathan Wold

Essayez de changer

<?php wp_editor($metabox->get_the_value(), $metabox->get_the_name(), $settings); ?>

à

<?php wp_editor( esc_textarea( $metabox->get_the_value() ), $metabox->get_the_name(), $settings); ?>

1
Dave Romsey