wp_editorを使うときは、テキストをビジュアルエディタに貼り付けます。 HTMLエディタに切り替えると、私のタグはすべてそこにあります。これまでのところ、問題ありません。更新すると、すべてのタグがビジュアルエディタとHTMLに表示されます。タグは次のようになります。
<p><strong>
もう一度更新すると、タグが自分のページに表示されます。だから私は一度だけ私のテキストの編集にこだわっています。複数回更新すると、タグが表示されてすべてがめちゃくちゃになります。
誰が何が起こっているのかの手がかりを得ましたか?
その行を使って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>
ありがとうございます。
編集:
問題はあります
$metabox->get_the_value()
それはタグを使ってコードを解析し、それからすべてをめちゃくちゃにします。ビジュアルエディタではなくHTMLエディタで値を解析する方法はありますか?
追加ソース:
入力:
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.
出力(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>"
そして関数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;
}
}
私は錬金術を動力とするメタボックスで新しいwp_editor関数を利用するとき同じ問題に遭遇しました。私はいくつかの検索を行い、 "html_entity_decode"を利用する解決策を見つけました。ここで参照を見てください。 https://Gist.github.com/1838037
変更してみてください
<?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); ?>