Cum să adaugi un fișier CSS personalizat în temă?

13 iul. 2012, 11:14:11
Vizualizări: 174K
Voturi: 21

Unele teme recomandă să nu editezi fișierul style.css, ci să folosești în schimb fișierul custom.css. Dacă scrii cod în custom.css, acesta va suprascrie stilul aceluiași element din style.css. Cred că acest lucru se face pentru a preveni pierderea stilurilor personalizate ale utilizatorului la actualizarea temei, este așa?

Cum funcționează acest lucru? Ei includ deja fișierul custom.css în tema lor? Dar cum este inclus acest fișier în temă astfel încât tema să caute mai întâi stilurile în custom.css? Mulțumesc.

1
Comentarii

Dacă persoana care pune această întrebare este germană, atunci aproape sigur "overwrite" înseamnă "override". Presupun că întrebarea nu spune că punerea de cod în fișierul custom.css va determina modificarea fișierului style.css. Nu spun acest lucru pentru a fi critic, ci pentru a sublinia că sunt confuz și aceasta este înțelegerea mea.

Sam Hobbs Sam Hobbs
7 aug. 2016 08:59:27
Toate răspunsurile la întrebare 10
4
39

Folosirea @import în WordPress pentru a adăga CSS personalizat nu mai este cea mai bună practică, dar tot poți să o faci prin această metodă.

Cea mai bună practică este utilizarea funcției wp_enqueue_style() în fișierul functions.php.

Exemplu:

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
Comentarii

Adaugă dependența față de fișierul părinte style.css pentru a te asigura că mystyle.css se încarcă după style.css!

Sumit Sumit
15 mar. 2016 08:41:34

Înțeleg partea cu calea, dar cum rămâne cu prima parte, 'theme-style' și 'my-style', pot pune orice acolo? Și care este codul complet în functions.php pentru a face asta să funcționeze?

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

@BrunoVincent poți numi handle cum dorești, atâta timp cât este unic. Vezi doc

Fahmi Fahmi
7 feb. 2018 10:57:03
5

De obicei adaug acest fragment de cod dacă vreau să adaug un alt fișier CSS

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

Cred că creatorii de teme doresc să păstreze cât mai mult din designul original al temei. Așadar, un fișier CSS personalizat nu face prea mult rău. Cred că este mai mult o întrebare de suport. Cu un fișier CSS personalizat, creatorii pot ajuta mai ușor pe cei care folosesc temele lor. Deoarece fișierul original style.css rămâne neschimbat, creatorii temei pot arunca o privire în fișierul CSS personalizat.

13 iul. 2012 11:18:53
Comentarii

nu mai este cea mai bună practică — developer.wordpress.org

iantsch iantsch
15 mar. 2016 09:34:50

@iantsch de ce nu? ce este mai bun? nu am găsit nimic mai bun.

Kangarooo Kangarooo
3 iul. 2017 22:13:30

@Kangarooo vezi răspunsul oferit de Fil Joseph: Încarcă scripturile/stilurile pe care vrei să fie incluse în header sau footer

iantsch iantsch
5 iul. 2017 12:01:22

Cu HTTP/1, cea mai bună practică este să împachetezi toate stilurile de bază într-un singur fișier minimizat, în loc să adaugi un alt fișier CSS pe care browserul trebuie să îl descarce și să îl proceseze.

Andy Andy
14 feb. 2019 23:47:56

în cazul meu, aceasta a fost cea mai bună soluție.

730wavy 730wavy
10 oct. 2019 04:18:27
0

Activează tema copil (child theme) și adaugă următorul cod exemplu în fișierul 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

Propunerea mea ar fi să folosiți teme copil (child themes). Este foarte ușor de implementat și toate modificările pe care le faceți (inclusiv stilurile) sunt complet izolate de tema originală.

13 iul. 2012 11:57:05
0

Pentru a preveni suprascrierea fișierelor CSS sau a altor fișiere din tema principală, ar trebui să folosești ÎNTOTDEAUNA o temă copil în WordPress... dacă nu faci asta, vei avea doar dureri de cap și probleme pe termen lung.

https://codex.wordpress.org/Child_Themes

... și având în vedere cât de ușor este să configurezi o temă copil, nu există niciun motiv pentru care să nu folosești una.

Folosirea unei teme copil îți va permite să suprascrii oricare dintre fișierele principale ale temei părinte, pur și simplu copiind din părinte în copil sau creând un fișier nou cu același nume.

În ceea ce privește fișierul custom.css, există numeroase moduri în care dezvoltatorii de teme gestionează acest lucru... mulți dintre ei fac asta doar pentru a încerca să împiedice clienții care nu doresc să folosească o temă copil să editeze fișierul principal style.css...

Oricum, nu ar trebui să îți faci griji în legătură cu asta, atâta timp cât folosești o temă copil, nu ar trebui să ai probleme la actualizarea temei ulterioare și să pierzi modificările tale... obișnuiește-te să folosești întotdeauna teme copil, îmi vei mulțumi mai târziu, promit.

15 mar. 2016 18:12:54
2

Dacă dorești să păstrezi HTML-ul nemodificat, poți adăuga acest cod în fișierul tău CSS. Cred că aceasta este o soluție mai bună.

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

De asemenea, în funcție de tema ta, va funcționa atât cu temele părinte, cât și cu cele copil.

-- ține minte, CSS-ul funcționează secvențial (când folosești același nivel de identificatori, deja utilizate), așadar ceea ce apare ultimul în fișier va suprascrie regulile anterioare. Așadar, plasează importul pentru customstyle la final dacă dorești să suprascrii anumite elemente.

13 iul. 2012 11:41:40
Comentarii

CSS nu funcționează secvențial, ci pe baza specificității regulii; revine la ultima suprascriere a celei anterioare doar atunci când aveți reguli de aceeași specificitate

srcspider srcspider
4 sept. 2013 17:36:50

ai dreptate, și la asta mă refer. prin "secvențial" mă refer la suprascriere, nu la CSS în general.

woony woony
24 ian. 2014 13:56:27
1

Folosește un child theme. Este cea mai bună alegere. În acest fel, dacă tema este actualizată, nu vei suprascrie fișierele de stil pe care le-ai creat.

https://codex.wordpress.org/Child_Themes

Alege această cale și îți vei mulțumi mai târziu.

15 mar. 2016 18:00:44
Comentarii

Asta nu răspunde chiar la întrebare. Ai putea să explici cum să adaugi fișierul de stiluri în tema copil.

kaiser kaiser
15 mar. 2016 18:48:54
0

Cea mai bună metodă este să combini toate stilurile încărcate într-o singură funcție și apoi să le apelezi folosind acțiunea wp_enqueue_scripts. Adaugă funcția definită în fișierul functions.php al temei tale, undeva sub configurația inițială.

Bloc de cod:

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' );

Notă importantă:

Al treilea parametru reprezintă matricea de dependențe, care indică dacă acest fișier de stiluri depinde de alt fișier de stiluri. Deci, în codul nostru de mai sus, custom.css depinde de style.css.

|
Informații suplimentare de bază:
Funcția wp_enqueue_style() poate avea 5 parametri:
în felul următor -
wp_enqueue_style( $handle, $src, $deps, $ver, $media );
În lumea reală a codării WordPress, de obicei adăugăm și fișiere JavaScript/biblioteci jQuery în interiorul acelei funcții, astfel:

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

Al 5-lea parametru true/false este opțional (al 2-lea, al 3-lea și al 4-lea parametru sunt de asemenea opționali), dar foarte important, ne permite să plasăm scripturile noastre în subsolul paginii atunci când folosim parametrul boolean ca true.

21 iun. 2017 11:47:56
0

Accesează Aspect > Editare CSS din Panoul de control WordPress. Ecranul de editare CSS în WordPress

Aici este ecranul cu editorul de CSS de bază. Editorul de CSS în WordPress

Acum lipește CSS-ul tău direct în textul implicit. Poți șterge textul implicit astfel încât doar CSS-ul tău să apară în editor. Apoi salvează fișierul de stiluri și CSS-ul tău va fi activ.

29 iul. 2017 08:00:17
0

Dacă dorești să eviți problemele de cache ale browserului web, trebuie să incluzi versiunea fișierului, așa cum este arătat în acest exemplu.

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

În acest caz, am scris data ultimei modificări în timp Unix ca parametru de interogare.

27 apr. 2020 11:06:39