web-dev-qa-db-fra.com

wp_editor sur le front-end - JavaScripts non inclus

Je travaille sur un plug-in BuddyPress pour un client qui nécessite que les utilisateurs puissent ajouter du contenu à partir du front-end - ils ne voient jamais le back-end pour des raisons de sécurité. J'ai le plug-in écrit et cela fonctionne parfaitement, mais il manque une chose: un éditeur de texte enrichi pour que les utilisateurs puissent personnaliser leur contenu (dans des limites raisonnables, bien sûr). Jusqu'à présent, j'avais ignoré cette demande du client et expliqué que ce n'était pas possible sans beaucoup de travail.

Aujourd'hui, cependant, je suis passé à la version 3.3 et j'ai remarqué la nouvelle balise wp_editor. J'ai essayé quelques-uns des exemples montrés ici , mais je ne parviens pas à faire fonctionner l'un d'entre eux correctement (un appel à la base génère l'éditeur, mais les onglets et les boutons multimédias ne fonctionnent pas, un tableau de paramètres TinyMCE de base ne donne rien. [Une simple zone de texte]]. L'inspection avec les outils de développement de Chrome révèle que certains fichiers JavaScript sont inclus dans la zone d'administration et ne sont pas inclus dans le système frontal. Quelle est la meilleure façon d'inclure ces fichiers et de faire en sorte que cela fonctionne? Merci!

4
Joseph Leedy

notez que wp_editor va echo pour sortir, pas le mettre dans une variable. Si vous voulez le mettre dans une variable, faites juste

ob_start();
wp_editor($content, 'textarea_rich', $args);
$html = ob_get_contents();
ob_end_clean();

et vous avez ce dont vous avez besoin dans $html. Vous pouvez également consulter https://plugins.svn.wordpress.org/indypress/tags/1.0/indypress/form_inputs/tinymce.php pour une implémentation fonctionnelle.

Un autre problème que j'ai noté est un problème qui concerne la minification de cache w3-total (en fait, j'avais le problème avec wp_tiny_mce, la fonction utilisée dans wp <= 3.2; je n'ai pas vérifié si c'est correct dans wp_editor, aussi)

2
boyska

Je ne sais pas si vous travaillez toujours là-dessus, mais vous pouvez essayer le plug-in "WP User Frontend". Il fait exactement ce que tu veux.

0
Amal

Le code suivant devrait fonctionner pour vous. Assurez-vous simplement que l'ID textarea est tout en minuscule et alphanumérique.

$post = get_post( $post_id, 'OBJECT' );
$args = array(
    'wpautop' => true,
    'media_buttons' => true,
    'editor_class' => 'frontend',
    'textarea_rows' => 5,
    'tabindex' => 1
);                      
wp_editor( esc_html( $post->post_content ), 'textareaid2', $args );

Vous pouvez lire la documentation de la fonction wp_editor dans cette page Codex .

0
byjml

ajoutez ceci au pied de votre thème juste avant la balise body fermeture:

<?php wp_footer(); ?>

tous les scripts de l'éditeur pour wp_editor sont affichés dans le pied de page, et si votre thème n'a pas cette balise, qui appelle do_action('wp_footer');, l'éditeur ne fonctionnera pas.

0
dwenaus