J'essaie de charger un fichier CSS pour ma zone de publication WordPress, mais sans succès. J'ai lu la fonction wp_enqueue_style et suis venu avec le code ci-dessous, mais il ne se charge pas. Y a-t-il une étiquette ou un caractère manquant dans mon code? J'ai un panneau d'écriture personnalisé lorsqu'un utilisateur poste que je veux styler avec le fichier CSS. Toute aide est la bienvenue.
Voici ce que j'ai dans mon fichier de thèmes functions.php
:
function mytheme_add_init() {
$file_dir=get_bloginfo('template_directory');
wp_enqueue_style("functions", $file_dir."/scripts/custom.css", false, "1.0", "all");
wp_enqueue_script("rm_script", $file_dir."/scripts/custom.js", false, "1.0");
}
Décrochez simplement votre rappel dans admin_print_styles
, c'est-à-dire:
add_action( 'admin_print_styles', 'mytheme_add_init' );
Vous pouvez également ajouter un wrapper conditionnel is_admin()
dans votre rappel et le connecter à wp_enqueue_scripts
:
function mytheme_add_init() {
if ( is_admin() ) {
$file_dir=get_bloginfo('template_directory');
wp_enqueue_style("functions", $file_dir."/scripts/custom.css", false, "1.0", "all");
wp_enqueue_script("rm_script", $file_dir."/scripts/custom.js", false, "1.0");
}
}
add_action( 'wp_enqueue_scripts', 'mytheme_add_init' );
Mais l'approche absolue best consiste à vous connecter à la page d'administration de votre thème , via admin_print_styles-appearance_page_{pagename}
:
add_action( 'admin_print_styles-appearance_page_{pagename}', 'mytheme_add_init', 11 );
Ceci est un crochet personnalisé spécifiquement pour votre page de présentation, telle que définie via votre appel add_theme_page()
.
Réponse tardive: Comme les deux réponses précédentes montraient des méthodes anciennes, incomplètes ou compliquées, voici une version mise à jour qui fonctionne de manière v3.5 +.
Voici la liste
admin_enqueue_scripts
. Ce crochetwp_enqueue_style()
s est le support ciblé et il est déjà défini sur all
par défaut. Pas besoin de l'ajouter.get_template_directory_uri()
pour récupérer l'URL de notre feuille de style. Inutile de vérifier la valeur de l'option template_directory
ici.get_template_directory()
pour extraire le chemin et le renvoyer dans un appel filemtime()
pour obtenir la dernière fois où la feuille de style a été modifiée. De cette manière, nous ajoutons un nouveau numéro de version en tant qu'argument de requête et forçons le navigateur à recharger la feuille de style s'il existe une nouvelle version. Pas besoin de forcer les rechargements durs avec Ctrl + F5.wp-admin.css
, ie
(encore pire) ou le schéma de couleurs. La partie la plus difficile consiste à vérifier le jeu de couleurs, car ce fichier contient la plupart des styles de l'interface utilisateur et constitue un paramètre utilisateur. Nous voulons également ajouter cela à la dépendance.admin_head-*
, où *
est le pageslug. Nous l’accrochons deux fois pour prendre en considération les nouveaux messages ainsi que les messages édités.Voici le code de votre fichier functions.php
.
add_action( 'admin_head-post.php', 'wpse44135AttachAdminStyle' );
add_action( 'admin_head-post-new.php', 'wpse44135AttachAdminStyle' );
function wpse44135AttachAdminStyle()
{
add_action( 'admin_enqueue_scripts', 'wpse44135EnqueueAdminStyle' );
}
function wpse44135EnqueueAdminStyle()
{
$scheme = get_user_meta(
get_current_user_id(),
'admin_color',
true
);
wp_enqueue_style(
"admin_style",
get_template_directory_uri()."/scripts/custom.css",
array( 'wp-admin', 'ie', "colors-{$scheme}" ),
filemtime( get_template_directory()."/scripts/custom.css" ),
"all"
);
}
Si vous souhaitez simplement ajouter des styles à l’éditeur TinyMCE WYSIWYG, vous pouvez également utiliser add_editor_style()
pour enregistrer votre feuille de style de thèmes dans l’éditeur de texte des zones d’administration. Le chemin que vous ajoutez en tant qu'argument est relatif à la racine de vos thèmes. Dans votre fichier functions.php
:
add_editor_style( '/scripts/custom.css' );
C'est aussi simple que ça.
Voici un moyen rapide d'ajouter du style dans admin head. J'espère que cela t'aides:
add_action('admin_head', 'my_custom_fonts');
function my_custom_fonts() {
echo '<style>
body, td, textarea, input, select {
font-family: "Lucida Grande";
font-size: 12px;
}
</style>';
}