Utilisation de wp_add_inline_style sans feuille de style

12

Je dois ajouter des styles intégrés personnalisés à l'en-tête d'un thème personnalisé que je crée. J'ai rencontré la fonction wp_add_inline_style() , qui fonctionne mais ne me convient pas vraiment car elle dépend d'une feuille de style spécifique. J'aurais besoin d'ajouter des styles en ligne à la fin de la balise head sans dépendance à la feuille de style.

J'ai essayé de définir la feuille de style du thème ou une feuille de style inexistante. Dans les deux cas, cela fonctionne mais c'est un peu un sale bidouillage (charger la feuille de style de thème deux fois ou se référer à un fichier fantôme ...). Existe-t-il un moyen approprié d’ajouter des styles en ligne dans head sans s’appuyer sur une feuille de style?

Bien sûr, je pourrais les ajouter directement dans le fichier header.php, mais j'aimerais éviter cela.

    
posée terzag 19.11.2014 - 11:26

3 réponses

17

Il vous suffit d’ajouter les styles directement à l’en-tête de la page. La meilleure façon de faire est d'utiliser le hook d'action 'wp_head', en supposant que vous utilisez un thème qui a le hook. Comme si:

add_action('wp_head', 'my_custom_styles', 100);

function my_custom_styles()
{
 echo "<style>*{color: red}</style>";
}

Consultez le codex WP pour en savoir plus sur les points d'accrochage d'actions.

    
réponse donnée SkyShab 19.11.2014 - 15:39
12

Vous pouvez simplement utiliser un descripteur "factice":

wp_register_style( 'dummy-handle', false );
wp_enqueue_style( 'dummy-handle' );

wp_add_inline_style( 'dummy-handle', '* { color: red; }' );
    
réponse donnée Flix 14.10.2017 - 02:42
3

Votre thème a très certainement une feuille de style par défaut (sinon, il ne serait même pas chargé en tant que thème). Utilisez simplement cette feuille de style en tant que gestionnaire pour votre CSS en ligne. Vous trouverez un exemple dans functions du thème TwentyFifteen (code ignoré pour être bref):

function twentyfifteen_scripts() {
    wp_enqueue_style( 'twentyfifteen-style', get_stylesheet_uri() );

}
function twentyfifteen_post_nav_background() {
    wp_add_inline_style( 'twentyfifteen-style', $css );
}
    
réponse donnée Casper 17.08.2017 - 06:40

Lire d'autres questions sur les étiquettes