web-dev-qa-db-ja.com

カスタムメタボックスでのWYSIWYGの使用

それで、私はwp_editorを使っていくつかのメタボックスを作成しました、すべてはまさに以下の通りです:

add_action( 'add_meta_boxes', 'business_facts_metabox' );              
function business_facts_metabox() 
    {   
        add_meta_box('business_facts', 'Business Facts', 'business_facts_output', 'page', 'normal', 'high');
    }

function business_facts_output( $post ) 
    {
    //so, dont ned to use esc_attr in front of get_post_meta
    $business_facts_value=  get_post_meta($_GET['post'], 'business_facts' , true ) ;
    wp_editor( htmlspecialchars_decode($business_facts_value), 'business-facts', $settings = array('textarea_name'=>'business-facts') );
    }


function save_business_facts( $post_id ) 
{                   
    if (!empty($_POST['business-facts']))
        {
        $data=htmlspecialchars($_POST['business-facts']);
        update_post_meta($post_id, 'business_facts', $data );
        }
}
add_action( 'save_post', 'save_business_facts' ); 

残念ながら、保存したものを出力するとすべてが出力されるため、太字は表示されず、代わりにの代わりに太字のWordを出力すると<strong> Word </strong>が出力されます。 WordスタイリングとHTMLが正しく機能して正しく出力するために必要です。

これはカスタムメタボックスを使用して可能ですか?もしそうなら、私は私のコードで何を編集する必要がありますか?

1
Trenton Moore

だから私はこの質問を投稿した直後にこれを考え出しました(duh)

function business_facts_output( $post ) 
    {
    //so, dont ned to use esc_attr in front of get_post_meta
    $business_facts_value=  get_post_meta($_GET['post'], 'business_facts' , true ) ;
    wp_editor( htmlspecialchars_decode($business_facts_value), 'business-facts', $settings = array('textarea_name'=>'business-facts') );
}

これは基本的にここで、htmlspecialchars_decode($business_facts_value)を変更する必要があると言っています。ここではhtmlspecialchars_decode()関数は必要ありませんが、代わりに$ business_facts_valueが必要です。

1
Trenton Moore