Come aggiungere un file CSS personalizzato nel tema?

13 lug 2012, 11:14:11
Visualizzazioni: 174K
Voti: 21

Alcuni temi suggeriscono di non modificare il file style.css, ma di utilizzare invece il file custom.css. Se scrivi codice nel custom.css, questo sovrascriverà lo stile dello stesso elemento presente in style.css. Penso che questo venga fatto per evitare la perdita degli stili personalizzati durante l'aggiornamento del tema, è così?

Come funziona? I temi includono già il file custom.css? Ma come viene incluso questo file nel tema in modo che il tema cerchi prima gli stili in custom.css? Grazie.

1
Commenti

Se la persona che fa questa domanda è tedesca, quasi sicuramente "overwrite" significa "override". Presumo che la domanda non stia dicendo che inserire codice nel file custom.css causerà la modifica del file style.css. Non lo dico per essere critico, ma perché sono confuso e questa è la mia comprensione.

Sam Hobbs Sam Hobbs
7 ago 2016 08:59:27
Tutte le risposte alla domanda 10
4
39

Utilizzare @import in WordPress per aggiungere CSS personalizzati non è più la pratica migliore, anche se è comunque possibile farlo con quel metodo.

La pratica migliore è utilizzare la funzione wp_enqueue_style() nel file functions.php.

Esempio:

wp_enqueue_style ('theme-style', get_template_directory_uri().'/css/style.css');
wp_enqueue_style ('my-style', get_template_directory_uri().'/css/mystyle.css', array('theme-style'));
15 mar 2016 08:22:06
Commenti

Aggiungi la dipendenza del file genitore style.css per assicurarti che il tuo mystyle.css venga caricato dopo style.css!

Sumit Sumit
15 mar 2016 08:41:34

Ho capito la parte del percorso, ma per quanto riguarda la prima parte, 'theme-style' e 'my-style', posso metterci quello che voglio? E riguardo a functions.php, qual è il codice completo per far funzionare tutto?

Bruno  Vincent Bruno Vincent
5 feb 2017 11:30:44

@BrunoVincent puoi chiamare l'handle come preferisci, purché sia univoco. Vedi documentazione

Fahmi Fahmi
7 feb 2018 10:57:03
5

Di solito aggiungo questo pezzo di codice se voglio aggiungere un altro file css

<link rel="stylesheet" href="<?php bloginfo('template_url'); ?>/css/my_custom_css.css" type="text/css" media="screen" />

Credo che i creatori di temi vogliano mantenere il più possibile il design del layout del tema. Quindi un file css personalizzato non fa molto male. Penso che sia più una questione di supporto. Con un file css personalizzato, i creatori possono aiutare più facilmente coloro che utilizzano i loro temi. Poiché il file style.css originale rimane inalterato, il creatore del tema può probabilmente dare un'occhiata al file css personalizzato.

13 lug 2012 11:18:53
Commenti

non è più una best practice — developer.wordpress.org

iantsch iantsch
15 mar 2016 09:34:50

@iantsch perché no? cosa c'è di meglio? non sono riuscito a trovare nulla di meglio.

Kangarooo Kangarooo
3 lug 2017 22:13:30

@Kangarooo vedi la risposta fornita da Fil Joseph: Accoda gli script/stili che vuoi includere nell'header o nel footer

iantsch iantsch
5 lug 2017 12:01:22

Con HTTP/1 è una best practice raggruppare tutti gli stili di base in un unico file minimizzato, invece di aggiungere un altro file CSS che il browser deve scaricare e elaborare.

Andy Andy
14 feb 2019 23:47:56

nel mio caso, questa è stata la soluzione migliore.

730wavy 730wavy
10 ott 2019 04:18:27
0

Attiva il tema child e aggiungi il seguente codice di esempio nel file function.php

add_action( 'wp_enqueue_scripts', 'child_enqueue_styles');

function child_enqueue_styles() {

wp_enqueue_style( 'reset-style', get_template_directory_uri() . '/css/reset.css', array());
}
2 nov 2017 09:43:48
0

La mia proposta sarebbe quella di utilizzare i child theme. È molto semplice da implementare e tutte le modifiche che apporti (inclusi gli stili) sono completamente isolate dal tema originale.

13 lug 2012 11:57:05
0

Per evitare la sovrascrittura del CSS principale del tema o di altri file, dovresti SEMPRE utilizzare un child theme in WordPress... non farlo ti causerà solo grossi mal di testa e problemi in futuro.

https://codex.wordpress.org/Child_Themes

... e considerando quanto sia semplice configurare un child theme, non c'è alcuna ragione per non utilizzarne uno.

Utilizzando un child theme potrai sovrascrivere qualsiasi file del tema genitore principale che desideri, semplicemente copiandolo dal genitore al tuo child theme, o creando un nuovo file con lo stesso nome.

Per quanto riguarda il file custom.css, ci sono numerosi modi in cui gli sviluppatori di temi gestiscono questo aspetto... molti lo fanno semplicemente per cercare di prevenire che i clienti che non vogliono usare un child theme modifichino il file principale style.css...

In ogni caso non dovresti preoccupartene, finché utilizzi un child theme non dovrai preoccuparti di aggiornare il tuo tema in seguito e perdere le tue modifiche... abituati a usare sempre i child theme, mi ringrazierai più tardi, te lo prometto.

15 mar 2016 18:12:54
2

Se vuoi lasciare il tuo html così com'è. puoi aggiungere questo al tuo file css. Penso che sia meglio.

@import url("../mycustomstyle.css");

inoltre, a seconda del tuo tema, funzionerà con temi figlio e genitore.

-- tieni presente che il css funziona in modo sequenziale (quando si utilizza lo stesso livello di identificatore, già utilizzato), quindi ciò che viene per ultimo nel tuo file sovrascriverà. quindi metti l'importazione del tuo customstyle alla fine se vuoi sovrascrivere elementi.

13 lug 2012 11:41:40
Commenti

il CSS non funziona in modo sequenziale, ma in base alla specificità della regola; ricorre solo all'ultima sovrascrittura quando ci sono regole con la stessa specificità

srcspider srcspider
4 set 2013 17:36:50

hai ragione, ed è proprio questo che intendo. con "sequenziale" mi riferisco alla sovrascrittura, non al CSS nel suo complesso.

woony woony
24 gen 2014 13:56:27
1

Utilizza un child theme. È la scelta migliore. In questo modo, se il tema viene aggiornato, non sovrascriverai i fogli di stile che hai creato.

https://codex.wordpress.org/Child_Themes

Scegli questa strada, ti ringrazierai in futuro.

15 mar 2016 18:00:44
Commenti

Ciò non risponde realmente alla domanda. Potresti voler spiegare come aggiungere il foglio di stile nel Child Theme.

kaiser kaiser
15 mar 2016 18:48:54
0

Il modo migliore è combinare tutti gli stili accodati in un'unica funzione e poi richiamarli utilizzando l'azione wp_enqueue_scripts. Aggiungi la funzione definita al file functions.php del tuo tema, da qualche parte sotto la configurazione iniziale.

Blocco di codice:

function add_theme_scripts() {
    wp_enqueue_style( 'style', get_template_directory_uri() . '/css/style.css' );
    wp_enqueue_style ( 'custom', get_template_directory_uri () . '/css/custom.css', array( 'style' ) );
}
add_action ( 'wp_enqueue_scripts', 'add_theme_scripts' );

Nota bene:

Il terzo parametro è l'array delle dipendenze, che indica se questo foglio di stile dipende da un altro foglio di stile. Quindi, nel nostro codice sopra, custom.css dipende da style.css.

|
Basi aggiuntive:
La funzione wp_enqueue_style() può avere 5 parametri: in questo modo - wp_enqueue_style( $handle, $src, $deps, $ver, $media );
Nel mondo reale della codifica WP, di solito aggiungiamo anche file javascript/librerie jQuery all'interno di quella funzione in questo modo:

wp_enqueue_script( 'script', get_template_directory_uri() . '/js/script.js', array ( 'jquery' ), 1.1, true);

Il 5° parametro true/false è opzionale (anche il 2°, 3° e 4° param. lo sono) ma molto essenziale, ci permette di posizionare i nostri script nel footer quando utilizziamo il parametro booleano come true.

21 giu 2017 11:47:56
0

Vai su Aspetto > Modifica CSS dalla tua Bacheca di WordPress. Schermata di modifica CSS in WordPress

Ecco la schermata con l'editor CSS di base. Editor CSS di WordPress con testo predefinito

Ora incolla il tuo CSS direttamente nel testo predefinito. Puoi eliminare il testo predefinito in modo che nel editor appaia solo il tuo CSS. Quindi salva il foglio di stile e il tuo CSS sarà attivo.

29 lug 2017 08:00:17
0

Se vuoi evitare problemi di cache del browser web, devi includere la versione del file, come mostrato in questo esempio.

wp_enqueue_style ('theme-style', get_template_directory_uri().'/path/to/css/style.css?v=' . filemtime(get_template_directory() . '/path/to/css/style.css'));

In questo caso, scrivo la data dell'ultima modifica in formato unix time come parametro di query.

27 apr 2020 11:06:39