J'essaie d'utiliser le plugin http://www.tinymce.com/ pour ajouter un tinymce à mes zones de texte dans les méta-boîtes que j'ai créées. J'ai cherché d'autres moyens sur Google et je ne peux pas le faire fonctionner ou je ne comprends pas le concept. SO c'est ce que je suis en train d'essayer -
J'ai essayé de créer un plugin pour ajouter le script à mon tableau de bord d'administration -
add_action('admin_init', 'admin_load_scripts');
function admin_load_scripts() {
$js_file = plugins_url( '/tinymce/jquery.tinymce.min.js', __FILE__ );
wp_enqueue_script('jquery.tinymce.min', $js_file, array('jquery'));
}
Ensuite, je dois l'appeler comme ça -
<script>
tinymce.init({selector:'textarea'});
</script>
Mais je ne suis pas sûr de savoir comment faire cela, étant donné que c’est pour le backend et non pour le front-end. Comment puis-je atteindre cet objectif?
MIS À JOUR
Ceci est mon code pour les boîtes à méta. http://Pastebin.com/WcC51uA9
J'ai essayé les méthodes suivantes (bien sûr, en le plaçant dans functions.php), et pour la plupart, elles ne fonctionnaient tout simplement pas ou étaient affichées en haut ou en bas de la page. Ils ne se sont pas montrés du tout sur la zone de texte. ---
Voici un Pastebin avec votre code inclus.
Obtenez l'ancienne valeur du tinyMCE
$meta_biography = get_post_meta( $post->ID, 'meta_biography', true );
Appelez l'éditeur TinyMCE
wp_editor( $meta_biography, 'biography', array(
'wpautop' => true,
'media_buttons' => false,
'textarea_name' => 'meta_biography',
'textarea_rows' => 10,
'teeny' => true
) );
Enregistrez la valeur de l'éditeur ou, si rien ne s'y trouve, supprimez les anciennes valeurs.
if( isset( $_POST['meta_biography'] ) && $_POST['meta_biography'] != '' ) {
update_post_meta( $post_id, 'meta_biography', $_POST['meta_biography'] );
} else {
delete_post_meta( $post_id, 'meta_biography' );
}
Si vous souhaitez ajouter plus d'options à l'éditeur - Vous pouvez afficher le Codex ou consultez ce joli/ Article WPTuts . Vous souhaitez utiliser la variable tinymce
et lui transmettre un tableau de paramètres. Vous devrez peut-être supprimer le teeny => true
dans la wp_editor()
car le Codex indique qu'il n'utilisera que la configuration minimale de l'éditeur.
// for pages use 'edit_page_form' as the first parameter. And see my comment below.
add_action( 'edit_form_advanced', 'my_meta_editor' );
function my_meta_editor() {
// set 'your_meta_key' to the actual key
$content = get_post_meta($post->ID, 'your_meta_key', true);
// only low case [a-z], no hyphens and underscores
$editor = 'mymetaeditor';
// See my comment below
$editor_settings = array();
wp_editor( $content, $editor, $editor_settings);
}
Rechercher Actions administratives pour edit_form_after_title
, edit_form_after_editor
, edit_form_advanced
si vous souhaitez modifier l'emplacement de la boîte méta.
Voir aussi wp_editor pour les paramètres de l'éditeur.
Cette fonction a parfaitement fonctionné pour moi, il suffit d’ajouter à votre fichier functions.php et de rendre vos champs personnalisés textareas et vous avez terminé:
//add tinymce editor to custom fields
function admin_add_wysiwyg_custom_field_textarea()
{ ?>
<script type="text/javascript">/* <![CDATA[ */
jQuery(function($){
var i=1;
$('textarea').each(function(e)
{
var id = $(this).attr('id');
if (!id)
{
id = 'customEditor-' + i++;
$(this).attr('id',id);
}
tinyMCE.execCommand("mceAddEditor", false, id);
tinyMCE.execCommand('mceAddControl', false, id);
});
});
/* ]]> */</script>
<?php }
add_action( 'admin_print_footer_scripts', 'admin_add_wysiwyg_custom_field_textarea', 99 );