web-dev-qa-db-fra.com

Y a-t-il un crochet pour insérer stylesheet et/ou JS dans les iframes (thickbox ou tinyMCE) dans la zone d'administration

Je travaille sur le thème de ma zone d'administration et je souhaitais apporter quelques modifications à l'apparence de thickbox et de tinyMCE. Je pouvais apporter la plupart des modifications en ajoutant des feuilles de style personnalisées et JS à ma zone d'administration à l'aide de wp_enqueue_script() et wp_enqueue_style(), mais j'ai eu du mal à apporter d'autres modifications. Cela est dû au fait que les iframes contenant les éléments ne sont pas accessibles par mes propres styles ou ont en tête d’autres feuilles de style et JS qui remplacent les miennes.

J'ai plus ou moins réussi à éviter cela en utilisant du JavaScript et la déclaration CSS !important, mais je me demandais s'il existait des points d'ancrage qui me permettraient d'appeler wp_enqueue_script() et wp_enqueue_style() afin de placer mes scripts dans ces en-têtes iframes. Certains hooks ressemblent à admin_head ou admin_init mais pour la thickbox ou les iframes?

4
nineam

Vous pouvez passer outre le CSS en utilisant le admin_print_scripts admin_head-media-upload-popup et ajoutez CSS pour répondre à vos besoins. Cela peut être fait via le fichier functions.php ou en créant un plugin. Voici le code au format plugin pour commencer à ajouter du style:

<?php
/*
Plugin Name: Some Name
Description: Custom Thickbox Styles
*/
add_action('admin_head-media-upload-popup', 'custom_tb_styles');
function custom_tb_styles() {
  ?>
  <style>
    #TB_window {
    background:silver;
    }
    /*
    YOUR CUSTOM STYLES HERE
    */
  </style>
  <?php
  }

Si vous ajoutez le code à votre fichier functions.php, vous pouvez simplement ajouter ceci au fichier:

<?php
add_action('admin_head-media-upload-popup', 'custom_tb_styles');
function custom_tb_styles() {
  ?>
  <style>
    #TB_window {
    background:silver;
    }
    /*
    YOUR CUSTOM STYLES HERE
    */
  </style>
  <?php
  }

Une autre option consiste à désenregistrer les styles Thickbox et à ajouter complètement les vôtres.

_Edited selon le commentaire de ungestaltbar , qui pointe sur le crochet correct pour imprimer le style/script uniquement dans l'iframe thickbox. Les points d’accrochage utilisés précédemment (admin_print_scripts et admin_print_styles) seront appelés dans toutes les pages administratives .

3
Jeremy Jared

Pour TinyMCE, il existe une fonction spécifique add_editor_style () permettant de mettre en attente une feuille de style dans l'éditeur visuel. Si vous appelez cela dans functions.php, il vous suffit de placer editor-style.css dans votre dossier de thèmes et vous êtes prêt à partir. Sinon, la fonction accepte l'argument d'un nom de feuille de style personnalisé.

2
mrwweb