Plusieurs fichiers CSS Thème enfant wordpress

Publié par Jean-Michel le

J’espère que vous êtes reconnaissant, j’ai quelques problèmes avec le chargement de fichiers séparés basés sur la variable url dans wordpress. J’ai pensé qu’il serait préférable de le faire dans le fichier de fonctions du thème enfant. code ci-dessous :

$getURLVar = explode("/",$_SERVER['REQUEST_URI']);

if($getURLVar[1] == "temp"){
   $uri_based_style = 'style-temp.css'; 
} else {
   $uri_based_style = 'style.css';  
}


 add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles',999 );
 function theme_enqueue_styles() {
 wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
 wp_enqueue_style( 'child-style',
  get_stylesheet_directory_uri() . $uri_based_style,
  array( $parent_style )
 );
}

Je n’arrive pas à lui faire charger le fichier. Les deux fichiers CSS sont basés dans le répertoire du thème enfant. Est-ce que quelqu’un a une idée?

Cordialement

Solution n°1 trouvée

Votre problème est la portée variable . Vous avez défini la variable en dehors de la fonction, elle n’est donc pas disponible par défaut dans la fonction. Par souci de simplicité, déclarez-le simplement dans la fonction, comme ceci :

function theme_enqueue_styles() {
    $getURLVar = explode("/",$_SERVER['REQUEST_URI']);
    if($getURLVar[1] == "temp"){
       $uri_based_style = 'style-temp.css'; 
    } else {
       $uri_based_style = 'style.css';  
    }

    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style',
    get_stylesheet_directory_uri() . $uri_based_style,
        array( $parent_style )
    );
}

Sinon…

Si pour une raison quelconque vous voulez/avez vraiment besoin de le déclarer en dehors de la fonction, utilisez global, comme ceci :

$getURLVar = explode("/",$_SERVER['REQUEST_URI']);
if($getURLVar[1] == "temp"){
   $uri_based_style = 'style-temp.css'; 
} else {
   $uri_based_style = 'style.css';  
}

function theme_enqueue_styles() {
    // global in the variable here so you can use it in the function
    global $uri_based_style;  

    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style',
    get_stylesheet_directory_uri() . $uri_based_style,
        array( $parent_style )
    );
}

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *