カスタムWordPressエディタフィールドを管理者の[一般設定]ページに追加しようとしています。 HTMLで何かを保存すると、すべてのコードがHTMLエンティティに変換されるので、HTMLはフロントエンドにテキストとして表示されます。例えば...
<a href="http://www.example.com">Link</a>
としてテキストエディタにリンクを追加します。<a href="http://www.example.com">Link</a>
<a href="http://www.example.com">Link</a>
<a href="http://www.example.com">Link</a>
どこかに設定がないのですか?私のコードは現在...
/**
* Add Copyright text to general settings menu
*/
$custom_general_settings = new FD_Custom_General_Settings();
class FD_Custom_General_Settings
{
function __construct()
{
add_filter('admin_init', array(&$this , 'register_fields'));
}
function register_fields()
{
register_setting('general', 'footer_text', 'esc_attr');
add_settings_field('footer_text', '<label for="footer_text">'.__('Footer Text' , 'footer_text' ).'</label>' , array(&$this, 'fields_html') , 'general');
}
function fields_html()
{
$value = get_option('footer_text', '');
wp_editor($value, 'footer_text', array('textarea_rows'=>4), false);
}
}
最終的なコードが次のようになるように、値の周りにhtml_entity_decode()
を追加する必要があることがわかりました...
/**
* Add Copyright text to general settings menu
*/
$custom_general_settings = new FD_Custom_General_Settings();
class FD_Custom_General_Settings
{
function __construct()
{
add_filter('admin_init', array(&$this , 'register_fields'));
}
function register_fields()
{
register_setting('general', 'footer_text', 'esc_attr');
add_settings_field('footer_text', '<label for="footer_text">'.__('Footer Text' , 'footer_text' ).'</label>' , array(&$this, 'fields_html') , 'general');
}
function fields_html()
{
$value = html_entity_decode(get_option('footer_text', ''));
wp_editor($value, 'footer_text', array('textarea_rows'=>4), false);
}
}
そして、それをテーマに出力して、ショートコードや改行を管理します。
echo nl2br(html_entity_decode(do_shortcode(get_option('footer_text', ''))));
コーデックスから :
Wp_editor()関数に渡されるIDは、小文字のみで構成できることに注意してください。 アンダースコアなし、ハイフンなし。それ以外のものはWYSIWYGエディタを誤動作させるでしょう。
あなたのコード:
wp_editor($value, 'footer_text', array('textarea_rows'=>4), false);