web-dev-qa-db-fra.com

Le bouton "Ajouter un média" ne fonctionne pas lorsque l'éditeur est initialisé à partir de javascript

J'essaie d'instancier le wp_editor avec javascript, ce qui fonctionne bien sauf que le bouton "Ajouter un média" ne fonctionne pas. Il n'y a pas d'erreur, mais cliquer sur le bouton ne fait rien.

Le cas de test le plus simple auquel je puisse penser consiste à ajouter l'éditeur au formulaire de commentaires, ce que j'ai fait via ce code dans un thème pour vingt-neuf enfants avec un contenu entièrement stock (en utilisant le message Hello World! À tester).

add_action('wp_enqueue_scripts', function() {
  if ( is_single() && comments_open() ) {
    wp_enqueue_editor();
  }
});

add_action('wp_footer', function() {
?>

<script type="text/javascript">
  var editorSettings = {
    mediaButtons: true,
    tinymce: true,
    quicktags: true
  };

  jQuery(function($){
    $(document).ready(function() {
      wp.editor.initialize( 'comment', editorSettings );
    });
  });

</script>

<?php
}, 100);

Le paramètre mediaButtons agit pour afficher/masquer le bouton lui-même, mais n'est pas fonctionnel.

J'ai le problème sur un site 4.9.8 (thème personnalisé), à la fois sur le champ de commentaires et sur d'autres textareas, j'ai essayé. Le test simplifié (ci-dessus) était de 5,0 et le même symptôme est présenté avec et sans le plugin Classic Editor activé.

J'ai essayé d'imprimer l'éditeur via wp_editor () en php, et le bouton Ajouter un média fonctionne alors (par exemple pour le champ de commentaires), mais ce n'est pas une option autre que pour le test, car les zones de texte que j'ai besoin d'utiliser sont ajoutées dynamiquement via javascript.

Quelqu'un a-t-il des idées à essayer ou aurait-il une configuration dans laquelle instancier l'éditeur via wp.editor.initialize () donne lieu à un bouton de travail "Ajouter un média"?

2
Jesse Norell

La solution consistait à appeler wp_enqueue_media () avec wp_enqueue_editor ().

0
Jesse Norell