Как добавить редактор wysiwyg в мета-поле Wordpress
Я создаю мета-поле для своего настраиваемого типа сообщений. Есть несколько полей, где я бы хотел использовать редактор wysiwyg, а не <textarea>
. Можно ли добавить несколько метаданных в мета-окно?
Я очень благодарен за вашу помощь!
Большое спасибо.
Даша
Ответы
Ответ 1
Вот пример полного кода:
add_action( 'add_meta_boxes', function() {
add_meta_box('html_myid_61_section', 'TITLEEEEE', 'my_output_function');
});
function my_output_function( $post ) {
wp_editor( htmlspecialchars_decode( get_post_meta($post, 'SMTH_METANAME' , true ) ), 'mettaabox_ID', $settings = array('textarea_name'=>'MyInputNAME') );
}
add_action( 'save_post', function($post_id) {
if (!empty($_POST['MyInputNAME'])) {
$datta=htmlspecialchars($_POST['MyInputNAME']);
update_post_meta($post_id, 'SMTH_METANAME', $datta );
}
});
P.S. MUST-Рекомендация по моему опыту:
Забудьте о добавлении пользовательских кодов, используйте Дополнительные пользовательские поля, это отлично и упрощает вашу жизнь.
Ответ 2
http://codex.wordpress.org/Function_Reference/wp_editor был самым простым методом, который я нашел, встроенным в Wordpress с 3.3 (так что upgrade;-))
Ответ 3
Но вам нужно заменить презентацию на функцию nl2br(), так как textarea в пользовательских шаблонах имеет проблему с Google JS, которая удаляет все ваши теги <P>
и <br/>
и, следовательно, все разрывы строк.
Ответ 4
Вы можете использовать текстовый редактор по умолчанию Wordpress в метабоксе, используя
add_action( 'edit_page_form', 'my_second_editor' );
function my_second_editor() {
// get and set $content somehow...
wp_editor( $content, 'mysecondeditor' );
}
Ответ 5
// for custom post type
function wo_second_editor($post) {
echo "<h3>Write here your text for the blue box on the right:</h3>";
$content = get_post_meta($post->ID, 'wo_blue_box' , true ) ;
wp_editor( htmlspecialchars_decode($content), 'wo_blue_box', array("media_buttons" => false) );
}
add_action('edit_form_advanced', 'wo_second_editor');
function wo_save_postdata($post_id, $post, $update) {
//...
if (!empty($_POST['wo_blue_box'])) {
$data=htmlspecialchars($_POST['wo_blue_box']);
update_post_meta($post_id, 'wo_blue_box', $data );
}
}
add_action('save_post', 'wo_save_postdata');
// Theme:
<div class="blue">
<?php
$content = get_post_meta(get_the_ID(), 'wo_blue_box' , true );
$content = htmlspecialchars_decode($content);
$content = wpautop( $content );
echo $content;
?>
</div>
Ответ 6
Попробуйте настраиваемый плагин шаблона поля http://wordpress.org/extend/plugins/custom-field-template/
Ответ 7
Сначала установите плагин TinyMCE Advanced.
Второе добавьте класс "theEditor" в ваше текстовое пространство, подобное этому
<textarea class="theEditor" name="custom_meta_box"></textarea>
Это
;)
Набиль
Ответ 8
Это сделало трюк для меня:
http://www.farinspace.com/multiple-wordpress-wysiwyg-visual-editors/
В основном он создает вашу текстовую область с идентификатором, а затем вызывает из js:
tinyMCE.execCommand('mceAddControl', false, 'your_textarea_id');
Надеюсь, что это поможет!