web-dev-qa-db-ja.com

wp_editorはカスタムメタボックスから段落を削除します

カスタムメタボックスを作成しました。

/*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は保持されます。

私はなぜそれがこれをやっているのかわからないので私は私の髪を引っ張っているとして誰かが助けてください。

ありがとう

アレックス

1
asaunders

echo wpautop($quote);を試しましたか? TynMCEビジュアルエディタで動作するように作られています。

ところで、私はあなたが素晴らしいクラスを使用することをお勧めします https://github.com/jaredatch/Custom-Metaboxes-and-Fields-for-WordPress

3
hawkidoki