Bonjour, j'ais vu qu'avec add_action('wp_head l'on peut ecrire du code dans le head de la page d'un plug in wordpress.
J'utilises ce code : mais rien n'apparait sur la page :

<?php
add_action( 'wp_head', function () {
echo "<style>
.jcarousel-wrapper#id".$d['slideselect']."{
margin: 0px auto;
position: relative;
width: ".$d['width'].";
height: ".$d["height"].";
}</style>";
});
?>

8 réponses


Salut,

Plutôt que d'utiliser le hook wp head et de faire un echo un peut bourrin, je t 'invite à jeter un oeil sur wp_enqueue_scripts ce hook est fait pour ajouter des styles dans le head. Cela te permettra de faire un vrai fichier css plutot qu'une injection sauvage.
Voilà

Bob Ol
Auteur

Merci, j'ais deja vu ca, mais le problème c'est que mon css contient plusieurs variables php et celui ci est generé plusieurs fois, je ne peux donc pas le mettre dans une feuille de style externe.
Je cherches par tout les moyens comment utiliser le hook wp_enqueue_scripts sans passer par une feuille de style mais je ne trouve pas.

Bob Ol
Auteur

J'ais trouvé ca qui fonctionne

add_action('wp_head','hook_css');

function hook_css() {

$output="<style> .wp_head_example { background-color : } </style>";
echo $GLOBALS["id-widget"];
echo $output;

}

Mais je n peux pas fair fonctionner ce code si il est placé dans ma fonction widget, je dois aubluigatoirement le placer en debut de fichier.
Le problème c'est que les variables php qui m'interessent se trouvent dans la fameuse fonction widget (la fonction qui affiche mon widget sur le front-end).
Je cherches donc maintenant un moyen de recuperer mes variables php en debut de fichier.

Salut,

Peux tu nous expliquer ce que tu utilises pour sauver tes variables? quel methode tu utilises. theme option? meta dans une page ?
Avec ça , on devrait pouvoir les retrouver dans ton hook.

Bob Ol
Auteur

function monsuperslider_widget_init(){
register_widget("monsuperslider_widget");
}

class monsuperslider_widget extends WP_widget{

function monsuperslider_widget(){
    $options = array(
        "classname" => "monsuperslider-widget",
        "description" => "Affiche un slider d images"
    );
    $this->WP_widget("widget-monsuperslider","Widget monsuperslider",$options);
}

//Ce qui apparait dans le widget, ici le slider
function widget($args,$d){
    extract($args);
Bob Ol
Auteur

voila ca ressembles à ca

Ben normalement
$mon_option = get_option('le_nom _de_loption_de_ton_widget');
devrait fonctionner.

La requette suivante devrait te donner les noms de toutes les options widget de ton site:

SELECT *
FROM wp_options
WHERE option_name
REGEXP '^widget_'
LIMIT 0 , 30

Bob Ol
Auteur

impossible de fair fonctionner wp head avec ou sans variables à l'intérieur de ma fonction widget, je ne comprends pas.