Je fais un plugin de navigation qui ajoute des animations à votre navigation wordpress.
J'ai lu dans Wordpress Codex que je devrais utiliser wp_enqueue_style ().
Premièrement, comment utiliser ce code pour plusieurs fichiers CSS? dans mon fichier de plugin principal.
Maintenant, selon this question, je voudrais ajouter des feuilles de style comme ceci:
function add_my_stylesheet()
{
wp_enqueue_style( 'myCSS', plugins_url( '/css/myCSS.css', __FILE__ ) );
}
add_action('admin_print_styles', 'add_my_stylesheet');
Étant donné que mon plugin nécessite l'ajout de plusieurs feuilles de style, lequel des deux codes dois-je utiliser?
function add_my_stylesheet()
{
wp_enqueue_style( 'myCSS', plugins_url( '/css/myCSS.css', __FILE__ ) );
}
add_action('admin_print_styles', 'add_my_stylesheet');
function add_my_stylesheet1()
{
wp_enqueue_style( 'myCSS1', plugins_url( '/css/myCSS1.css', __FILE__ ) );
}
add_action('admin_print_styles', 'add_my_stylesheet1');
Ou
function add_my_stylesheet1()
{
wp_enqueue_style( 'myCSS1', plugins_url( '/css/myCSS.css', __FILE__ ) );
wp_enqueue_style( 'myCSS1', plugins_url( '/css/myCSS1.css', __FILE__ ) );
}
add_action('admin_print_styles', 'add_my_stylesheet1');
Maintenant je sais où ajouter ce code. Mais comment appeler la feuille de style que je veux utiliser?
Aussi, juste pour clarifier ce que ferait mon plug: Le fichier de plugin principal ne chargerait que la feuille de style requise. Et la page des options permettrait à l’utilisateur de sélectionner la feuille de style à utiliser.
par exemple, au format php, j'utiliserais ce qui suit:
<link href="nav-<?php echo $name; ?>.css">
Le nom $ devrait être celui sélectionné dans la page des options, mais comment puis-je appeler dans la feuille de style requise?
J'espère que ma question est suffisamment claire.
Pour répondre à votre première question, vous utiliseriez le second style, à savoir.
function add_my_stylesheet()
{
wp_enqueue_style( 'myCSS', plugins_url( '/css/myCSS.css', __FILE__ ) );
wp_enqueue_style( 'myCSS1', plugins_url( '/css/myCSS1.css', __FILE__ ) );
}
add_action('admin_print_styles', 'add_my_stylesheet');
Qu'est-ce que la fonction add_action()
indique à WordPress: "Lorsque l'action admin_print_styles
se produit, exécutez cette fonction add_my_stylesheet()
." Confusément, la pratique consistant à utiliser les actions admin_print_styles
et admin_enqueue_styles
pour mettre en file d'attente les feuilles de style est incorrect - aussi contre-intuitif qu'il soit, vous devez utiliser admin_enqueue_scripts
à la place.
Les appels à wp_enqueue_style()
ajoutent ensuite les feuilles de style spécifiées à une liste de feuilles de style qui seront chargées (si vous spécifiez l’argument des dépendances, WordPress veillera également à ce que vos feuilles de style se chargent dans le bon ordre). Vous n'avez pas besoin "d'appeler" une feuille de style mise en file d'attente comme vous l'avez suggéré - si elle est mise en file d'attente, il sera sera imprimé dans un élément HTML <link ...>
de la section <head></head>
de la même manière que WordPress la charge propres feuilles de style.
Afin de sélectionner quelle feuille de style sera chargée, vous ajoutez simplement votre logique à votre fonction add_my_stylesheet()
; si vous ne souhaitez pas utiliser une feuille de style, vous ne la mettez pas en file d'attente, c'est-à-dire:
function admincolorplugin_enqueue_styles()
{
// Get the user's stylesheet choice from the options, default to "white"
$stylesheet = get_option( 'admincolorplugin_stylesheet', 'white' );
// Conditionally load the appropriate stylesheet
if( $stylesheet == 'black' ) {
wp_enqueue_style( 'admincolorplugin-black', plugins_url( '/css/black.css', __FILE__ ) );
}
else {
wp_enqueue_style( 'admincolorplugin-white', plugins_url( '/css/white.css', __FILE__ ) );
}
}
add_action('admin_enqueue_scripts', 'admincolorplugin_enqueue_styles' );
add_action( 'admin_enqueue_scripts', 'safely_add_stylesheet_to_admin' );
/** * Add stylesheet to the page*/
function safely_add_stylesheet_to_admin() {
wp_enqueue_style( 'prefix-style', plugins_url('plugin_styles.css', __FILE__) );
wp_enqueue_style( 'prefix-basic', plugins_url('/css/basic.css', __FILE__) );
}
Utilisez un if pour vérifier s'il est conforme à vos critères, par exemple
De cette façon, il ne tirera que le CSS que vous souhaitez sur la page souhaitée/lorsque l'option d'administration souhaitée est sélectionnée.
function add_my_stylesheet1()
{
if(is_page(41)){
wp_enqueue_style( 'myCSS1', plugins_url( '/css/myCSS.css', __FILE__ ) );
}else{
wp_enqueue_style( 'myCSS1', plugins_url( '/css/myCSS1.css', __FILE__ ) );
}
}
Ou:
function add_my_stylesheet1()
{
$adminopt = get_option( $option, $default );
if($adminopt == "Normal CSS"){
wp_enqueue_style( 'myCSS', plugins_url( '/css/myCSS.css', __FILE__ ) );
}else{
wp_enqueue_style( 'myCSS1', plugins_url( '/css/myCSS1.css', __FILE__ ) );
}
}