将元框内容输出为格式化文本

时间:2015-12-05 16:00:49

标签: php wordpress

我是创建元框的新手,但我已经设法为我的需求创建了一个好的框。但是,我需要将两个输入框格式化为文本(在我的代码中显示);保存为这样并输出到网站。但是,我似乎无法使其发挥作用。我可以将数据保存到数据库中,这很好 - 但它不会使用诸如中断,粗体,h1标签,段落等内容保存文本。虽然我已经删除了很多其他元素来缩短你的评论代码,但这是我到目前为止所拥有的:

class Tour_Meta {

public function __construct() {
    if ( is_admin() ) {
        add_action( 'load-post.php',     array( $this, 'init_metabox' ) );
        add_action( 'load-post-new.php', array( $this, 'init_metabox' ) );
    }
}

public function init_metabox() {
    add_action( 'add_meta_boxes', array( $this, 'add_metabox'  )        );
    add_action( 'save_post',      array( $this, 'save_metabox' ), 10, 2 );
}

public function add_metabox() {
    add_meta_box(
        'tourMeta',
        __( 'Details for this tour', 'dappa' ),
        array( $this, 'render_trmeta' ),
        'tours',
        'advanced',
        'high'
    );
}

public function render_trmeta( $post ) {

    $trmet_itinerary = get_post_meta($post->ID, 'trmet_itinerary', true);
    $trmet_overview = get_post_meta( $post->ID, 'trmet_overview', true );

    if( empty( $trmet_itinerary ) ) $trmet_itinerary = '';
    if( empty( $trmet_overview ) ) $trmet_overview = '';

    echo '<div class="form-table" id="tourEntries">';

    echo'   <h2>Tour Overview</h2>';
    wp_editor(htmlspecialchars_decode($trmet_overview) , 'trmet_overview', array(
    "media_buttons" => true
    ));

    echo'   <h2>Tour Itinerary</h2>';
    wp_editor(htmlspecialchars_decode($trmet_itinerary) , 'trmet_itinerary', array(
    "media_buttons" => true
    ));

    echo' </div>';

}

public function save_metabox( $post_id, $post ) {

    $trmet_new_itinerary = isset( $_POST[ 'trmet_itinerary' ] ) ? sanitize_text_field( $_POST[ 'trmet_itinerary' ] ) : '';
    $trmet_new_overview = isset( $_POST[ 'trmet_overview' ] ) ? sanitize_text_field( $_POST[ 'trmet_overview' ] ) : '';
}
}
new Tour_Meta

我还尝试了不同的方式将post meta输出到页面,但无论如何,如果在后端它没有正确保存,这无关紧要。

您的任何想法都表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

Pfft。好的,所以很简单。

我需要在这些字段上使用esc_html()而不是sanitize_text_field()

谢谢!