Y at-il un moyen d'obtenir N nombre de rédacteurs en chef WYSIWYG dans un type de poste personnalisé?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/436

  •  16-10-2019
  •  | 
  •  

Question

Y at-il moyen d'avoir plusieurs éditeurs WYSIWYG pour un type de poste personnalisé? Par exemple, si j'avais une colonne 2 mise en page que je voulais avoir un éditeur pour une colonne et un autre éditeur pour l'autre.

Était-ce utile?

La solution

Dites votre type de poste personnalisé a été appelé Properties, vous devez ajouter la boîte à tenir votre éditeur de tinyMCE supplémentaire en utilisant un code similaire à ceci:

function register_meta_boxen() {
    add_meta_box("wysiwyg-editor-2", "Second Column", "second_column_box",
    "properties", "normal", "high");    
}
add_action('admin_menu', 'register_meta_boxen');

wysiwyg-editor-2 est l'ID de la boîte de méta aura appliqué, Second Column est le titre que la boîte de méta aura, second_column_box est la fonction qui permet d'imprimer le code HTML de la boîte de méta, properties est notre type de poste personnalisé, normal est l'emplacement de la boîte de méta et high précise qu'il doit être affiché aussi haut dans la page que possible. (Généralement en dessous de l'éditeur de tinyMCE par défaut).

Ensuite, en prenant cela comme l'exemple le plus fondamental, vous devez joindre l'éditeur de tinyMCE à un textarea. Il nous reste à définir notre fonction second_column_box qui imprime le code HTML de la boîte de méta donc c'est aussi bon endroit que tout à faire:

function second_column_box() {
    echo <<<EOT
    <script type="text/javascript">
jQuery(document).ready(function() {
    jQuery("#tinymce").addClass("mceEditor");
    if ( typeof( tinyMCE ) == "object" &&
         typeof( tinyMCE.execCommand ) == "function" ) {
        tinyMCE.execCommand("mceAddControl", false, "tinymce");
    }
});
</script>
    <textarea id="tinymce" name="tinymce"></textarea>
EOT;
}

Il y a deux questions que je ne suis pas sûr de savoir comment surmonter. L'éditeur de tinyMCE sera imbriqué à l'intérieur d'un METABOX, ce qui pourrait ne pas être idéal, et il ne sera pas en vedette la possibilité de basculer entre HTML et les modes d'édition visuelle, ainsi que les commandes d'insertion de médias que l'éditeur de courrier normal a. Commutation des modes semble être définie en fonction qui est le premier argument est l'ID, mais pourtant il semble également codé dans le script wp-tinymce. Il est possible d'utiliser les fonctions intégrées tinyMCE de le faire, mais cela change la textarea entre la pleine tinyMCE et un textarea de base, sans aucun des boutons d'insertion WP HTML.

Autres conseils

Tout d'abord: Big Merci @Thomas McDonald pour sa réponse ; Je avais besoin de comprendre exactement la même question que Sheldrake @ Paul et a demandé le code de Thomas m'a lancé dans la bonne direction.

Malheureusement, je puis me suis coincé parce que Je avais besoin de changer la mise en page de la valeur par défaut à une plus simple et plus petite mise en page que je devais utiliser le TinyMCE dans un METABOX latéral. Je regardais pratiquement partout pour trouver une solution et surtout sur le Moxiecode TinyMCE wiki et TinyMCE Conseils & Comment Forum et a constaté rien! 1 Tout ce que j'ai trouvé expliqué comment configurer theme, width, height, etc., en utilisant tinyMCE.init({...}) mais apparemment vous ne pouvez pas l'utiliser lorsque vous utilisez tinyMCE.execCommand("mceAddControl").

J'étais sur déconcerté quand je suis tombé sur l'article plusieurs TinyMCE 3 cas sur une seule page par
(source: mikeschinkel.com )

Donc, si vous utilisez @Thomas McDonald code ci-dessus vous vous trouvez que vous avez besoin de modifier la mise en page Assurez-vous de consulter l'article génial de Hamilton Chua (merci Ham!) :

P.S. Si vous faites quelque chose de mal, même légèrement le TinyMCE peut tout simplement pas montrer du tout. Par exemple, dans mon cas, je l'utilise theme: "simple" dans un premier temps et je n'ai rien et il m'a fallu plus d'une heure pour se rendre compte que je avais juste besoin d'utiliser theme: "advanced". Donc, si vous trouvez TinyMCE ne fonctionne pas pour vous être sûr d'essayer de changer les choses, vous pouvez avoir un problème similaire. (BTW, je n'ai pas essayé d'autres thèmes, ni exploré ce qui est disponible;. Si vous trouvez d'autres thèmes que le travail ne s'il vous plaît laisser un commentaire ci-dessous)

Note

1 : Très frustrant! Après un peu plus d'un mois avec WordPress réponse que je suis attend maintenant de trouver des réponses à toutes mes questions que le même niveau de qualité ici, et ailleurs je trouve généralement déception!

Depuis que je trouve cet article que le premier résultat de Google, je voulais juste faire remarquer que WP propose désormais une fonction pour gérer ce genre de tâche.

Dans la fonction add_meta_box, ajoutez le code suivant ->

wp_editor( $content, $editor_id, $settings = array() );

Où que vous voulez ajouter l'éditeur TinyMCE

Référence: wp_editor

L'éditeur par défaut, tinymce, est chargé par une fonction dans wp-admin / includes / post.php appelé wp_tiny_mce (); Regardez dans le source à la ligne 1350. Il est un tableau de paramètres à la ligne 1478. l'une des options désigne apparemment le sélecteur textarea pour appliquer l'éditeur de javascript pour. Je lisais ce poste par Keighl sur son blog qui pointait moi vers elle. Lire l'article, et peut-être il y a un moyen d'appel wp_tiny_mce () dans un plug-in de la section d'administration et l'appliquer à une seconde zone de texte que vous créez.

Je l'ai juste en ajoutant « theEditor » comme attribut class à une zone de texte:

<div style="background: #FFF; border: 1px solid #CCC;"><textarea id="my_details_field" name="my_details" class="theEditor" rows="20" style="width: 100%;"><?=get_post_meta($post->ID, 'my_details', TRUE)?></textarea></div>
Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top