Ajouter CSS, Php plugin WordPress
J'ai écrit un plugin simple qui définit le code css à l'aide wp_options. Tout cela ressemble comme ceci:
add_action('init','easy_style');
function easy_style()
{
?>
<style>
#header a {
color: <?php echo get_option('topcolor'); ?>;
font-size: <?php echo get_option('topsize'); ?>px;
<?php
if (get_option('topstyle') == "bold")
{ echo "font-weight: bold;"; echo "font-style: normal;"; }
elseif (get_option('topstyle') == "italic")
{ echo "font-style: italic;"; echo "font-weight: normal;"; }
elseif (get_option('topstyle') == "bolditalic")
{ echo "font-weight: bold;"; echo "font-style: italic;"; }
else { echo "font-weight: normal;"; echo "font-style: normal;"; }
?>;
}
</style>
<?php
}
Maintenant cela fonctionne, mais si je activer mon "Contact Form 7" du plugin contact form 7 ne fonctionne plus. Il ne peut pas envoyer de mails. Donc, je pense que ce que je fais est mal. Si j'enlève ce bout de code, le formulaire de contact fonctionne à nouveau...
Je pense que je le fais mal parce que la css doit être chargé dans l'en-tête, non?
Donc ce que j'ai pensé que je ferais un test est de mettre le même code dans l'en-tête. Cependant, alors que certains autres css (je ne sais pas où) remplace ces, ce qui ne fonctionne pas.
Je pense qu'il y a certains wp fonctions pour ajouter du code css dans l'en-tête mais je ne sais pas comment exactement.
Des idées?
Grâce
OriginalL'auteur WtFudgE | 2012-06-05
Vous devez vous connecter pour publier un commentaire.
Un moyen sûr d'ajouter la feuille CSS de votre plugin est d'utiliser
wp_enqueue_style
.Référence.
J'ai remarqué que certains le code css fonctionne, mais certains ne l'est pas. Par exemple, une taille de police & font-weight sur les liens du menu de travail, mais la couleur ne semble pas changer. Des idées?
Qui sera à cause de votre modèle de feuille de style CSS est primordial de votre plugin CSS. Jetez un oeil à l'ordre de l'inclusion et de la CSS spécificité: w3.org/TR/CSS2/cascade.html#specificity
OriginalL'auteur MrCode
Peut-être que le plugin que vous utilisez veut envoyer des en-têtes http.
Puisque vous utilisez la init crochet (détaillé ici: http://codex.wordpress.org/Plugin_API/Action_Reference/init) vous êtes l'exécution de certaines actions lorsque les développeurs de plugins considérer que les en-têtes ne sont pas déjà envoyé.
Mais puisque vous envoyer de sortie (écho à certains styles de), vous forcez les en-têtes pour être envoyé plus tôt. Je vous suggère d'utiliser un autre crochet qui se produit après que la sortie est déjà commencé.
Mise à jour: vous pouvez utiliser le wp_enqueue_style fonction (référence ici: http://codex.wordpress.org/Function_Reference/wp_enqueue_style) car c'est le mode recommandé pour les styles d'affichage. Vous avez seulement besoin d'enregistrer ces règles dans un fichier css et salle de file d'attente pour être chargé avant le wp_head fonction est appelée
Semble que j'avais tort, il a travaillé en local, mais sur mon hôte, j'obtiens: Cannot modify header information - headers already sent by (output started at /home/gnc0081000/domaines/claeysparts.être/public_html/wp-content/plugins/easy-styler.php:18) /home/gnc0081000/domains/claeysparts.be/public_html/wp-includes/pluggable.php sur la ligne 866
c'est exactement la même chose, il suffit de lire le message d'erreur. vous êtes quelque chose d'impression avant d'utiliser l'en-tête de la fonction. C'est la même chose je l'ai dit ci-dessus, mais dans une partie du script que je n'ai pas accès, mais le message d'erreur vous indique où est l'erreur: /home/gnc0081000/domains/claeysparts.be/public_html/wp-content/plugins/easy-styler.php à la ligne 18
OriginalL'auteur mishu
Dans un plugin dev, n'oubliez pas d'envoyer la référence de l'
class ($this)
OriginalL'auteur Longshot
J'ai résolu mon problème en cours de chargement dans les styles.fichier css, modifier et enregistrer de nouveau
OriginalL'auteur WtFudgE