редактор wp удаляет абзац из пользовательского мета-поля


Я создал пользовательский мета-блок следующим образом:

/*quote meta box*/
add_action('add_meta_boxes', 'quote_meta_box');
function quote_meta_box($post) {
    global $post;
    $post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ;
    $blogPage = get_option('page_for_posts');

    if($blogPage != $post_id) {
        if($post_id != '8') {
            add_meta_box('quote_id', 'Quote', 'quote_meta_box_cb', 'page', 'normal', 'high');   
        }
    }
}

function quote_meta_box_cb($post) {
    global $post;

    wp_nonce_field('quote_nonce', 'quote_meta_box_nonce');

    $values = get_post_custom($post->ID);

    $quote = get_post_meta($post->ID, 'quote_text', true);

    $settings = array(
        'textarea_rows' => 15
    );

    echo '<p><strong>Quote</strong></p>';
    wp_editor($quote, 'quote-text', $settings);
}

function quote_save($post_id) {
    if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;

    if(!isset($_POST['quote_meta_box_nonce']) || !wp_verify_nonce($_POST['quote_meta_box_nonce'], 'quote_nonce')) return;
    if(!current_user_can('edit_post')) return;

    if(isset($_POST['quote-text'])) {
        update_post_meta($post_id, 'quote_text', $_POST['quote-text']);
    }
}
add_action('save_post', 'quote_save');

Затем я вызываю это в своем шаблоне, например:

<?php $quote = get_post_meta($post_id, 'quote_text', true); ?>
<?php echo $quote; ?>

Я пытаюсь добавить абзац и тег заголовка. Каждый раз, когда я сохраняю страницу, wp_editor() удаляет мои теги p, но сохраняет h4, который я использую.

Может кто-нибудь, пожалуйста, помочь, так как я вырываю волосы, так как понятия не имею, зачем он это делает.

Спасибо

Алекс

Author: asaunders, 2013-08-06

1 answers

Вы пробовали echo wpautop($quote);? Он создан для работы с визуальным редактором TynMCE.

Кстати, я рекомендую вам использовать класс awesome https://github.com/jaredatch/Custom-Metaboxes-and-Fields-for-WordPress

 3
Author: hawkidoki, 2013-08-06 22:54:13