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


Output meta box content as formatted text

我是创建元盒的新手,但我已经成功地创建了一个适合我需要的元盒。但是,我需要其中两个输入框是格式化文本(显示在我的代码中);按原样保存并按原样输出到站点。不过,我似乎做不到。我可以将数据保存到数据库中,这很好,但它不会使用换行符、粗体、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元输出到页面,但如果在后端没有正确保存,那也没什么关系。

感谢您的任何想法。谢谢

Pfft。好吧,很简单。

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

谢谢!