Несколько редакторов (TinyMCE) в пользовательских типах сообщений - PullRequest
2 голосов
/ 16 февраля 2012

У меня есть собственный тип сообщения для продуктов.У меня есть два редактора TinyMCE (стандартный и один для сводного поля), которые корректно загружаются в Dashboard.Со стороны Приборной панели все работает правильно.Добавляет, обновляет.и т.д ...

Однако на сайте вывод теряет разрывы строк (теги абзаца).Вот пример:

http://keg.brettatkin.com/products/complete-consulting-skills-learning-system/

Я использую функцию wp_editor для этого.(http://codex.wordpress.org/Function_Reference/wp_editor)

Вот мой код:

<?php
function keg_product_fields (){
global $post;
$custom = get_post_custom($post->ID);
$keg_product_price = $custom["keg_product_price"][0];
$keg_product_link = $custom["keg_product_link"][0];
$keg_product_type = $custom["keg_product_type"][0];
$keg_product_featured = $custom["keg_product_featured"][0];
$keg_product_summary = $custom["keg_product_summary"][0];
$editor_id = "kegprodsummary"
?>
<p>
<label>Summary:</label><br />
<?php wp_editor( $keg_product_summary, $editor_id, $settings = array('textarea_name' => 'keg_product_summary') ); ?>
</p>
<p>
<label>Price:</label><br />
<input size="10" name="keg_product_price" value="<?php echo $keg_product_price; ?>" />
</p>
<p>
<label>Type:</label><br />
<select name="keg_product_type">
<option value="<?php echo $keg_product_type; ?>" selected="selected"><?php echo $keg_product_type; ?></option>
<option value="Book">Book</option>
<option value="CD">CD</option>
<option value="Downloadable">Downloadable</option>
<option value="Multimedia">Multimedia</option>
<option value="Virtual">Virtual</option>
</select>
</p>
<p>
<label>Link:</label><br />
<input size="65" maxlength="200" name="keg_product_link" value="<?php echo $keg_product_link; ?>" />
</p>
<p>
<input type="checkbox" name="keg_product_featured" value="Yes" <?php if (!(strcmp("$keg_product_featured","Yes"))) {echo "checked=\"checked\"";} ?>/>
<label>Featured Product</label>
</p>

<?php
}

function add_keg_product_box (){
add_meta_box(
"keg_product_info",
"Product Details",
"keg_product_fields",
"keg_products"
);
}


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

global $post;
update_post_meta($post->ID, "keg_product_price", $_POST["keg_product_price"]);
update_post_meta($post->ID, "keg_product_link", $_POST["keg_product_link"]);
update_post_meta($post->ID, "keg_product_type", $_POST["keg_product_type"]);
update_post_meta($post->ID, "keg_product_featured", $_POST["keg_product_featured"]);
update_post_meta($post->ID, "keg_product_summary", $_POST["keg_product_summary"]);

}

add_action ('admin_init', 'add_keg_product_box' );
add_action ('save_post', 'save_keg_product_attributes');
add_action ('publish_post', 'save_keg_product_attributes');
?>

Есть идеи?

Спасибо!

Бретт

Ответы [ 2 ]

1 голос
/ 29 июня 2012

Вы должны применить выходные фильтры с помощью функции apply_filters на странице, где вы хотите отобразить ваше резюме.

Пример:

<?php 
$summary = get_post_meta(...);
echo apply_filters('the_content', $summary);
?>
0 голосов
/ 05 апреля 2012

Попробуйте использовать wpautop() при сохранении содержимого или при его отображении (я рекомендую использовать его при сохранении для повышения производительности).
Эта функция добавляет абзацы по всему тексту в зависимости от разрывов строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...