web-dev-qa-db-fra.com

comment faire apparaître la feuille de style dans l'éditeur de thèmes?

J'ai une feuille de style dans mon thème dans le sous-répertoire css du répertoire theme (css/style.css). La question est de savoir comment faire en sorte que ce fichier .css apparaisse dans l'éditeur de thème de l'administrateur WordPress. (Je sais que l'utilisation de l'éditeur Web est une mauvaise idée et je ne l'utilise jamais, mais le client l'a expressément demandé).

Remarque: le seul fichier CSS qui apparaît par défaut dans mon éditeur de thème est 'style.css' du répertoire du thème racine, mais ce n'est pas ce dont j'ai besoin.

3
NeuronQ

Je dirais que c'est impossible ...

D'une part, il n'y a pas de crochet dans le fichier /wp-admin/theme-editor.php.

Et le dernier mais non le moindre, si vous essayez l'une de ces méthodes, une erreur est générée:

  • /wp-admin/theme-editor.php?file=css%2Fstyle.css&theme=twentyeleven
  • /wp-admin/theme-editor.php?file=css/style.css&theme=twentyeleven

Si vous trouvez une solution de contournement, ce code insère un lien vers le fichier souhaité:

/**
 * Adjust the if('Twenty Eleven' == sel) to your theme name
 */
add_action('admin_head-theme-editor.php', 'wpse_55949_script_enqueuer');

function wpse_55949_script_enqueuer(){
    echo <<<HTML
    <script type="text/javascript">
    jQuery(document).ready( function($) {
        var sel = $("#theme option:selected").text();
        if('Twenty Eleven' == sel) 
        {
            $('<li><a href="theme-editor.php?file=css/style.css&amp;theme=twentyeleven">Subfolder Stylesheet<br><span class="nonessential">(css/style.css)</span></a></li>').appendTo('#templateside ul:last');
        }
    });     
    </script>
HTML;
}

[update]

Une autre approche serait de créer une page d’options où le client peut écrire/manipuler le CSS.

1
brasofilo

C'est aussi simple que vous pourriez le penser.

Tous les sélecteurs que vous vouliez donner à un client, placez-les dans une feuille de style supplémentaire, client-styles.css

Enregistrez cette feuille de style non pas dans le dossier css, mais dans la racine du thème. Donc, avec le/probablement déjà existant style.css et editor-style.css .

Ajoutez @import "client-styles.css"; au fichier style.css (il existe probablement déjà d’autres règles d’importation).

Corriger le lien dans l'en-tête de /css/client-styles.css à /client-styles.css

Rappelez au client qu'il peut supprimer le site s'il ne fait pas attention (comme vous l'avez dit, il le voulait!).

0
Dan