Jak ważne jest kolejkowanie arkusza stylów motywu?

19

Przeszukałem sieć, szukając odpowiedzi na to pytanie, ale z jakiegoś powodu wszystko, co mogę znaleźć, to rzeczywiste przykłady, ale bez tego konkretnego wyjaśnienia, co jest jasne w przypadku skryptów. Czy ktoś może mi wyjaśnić, dlaczego kolejność stylów podczas tworzenia motywu jest ważna / korzystna, a nie tylko <link rel=stylesheet>w pliku header.php.

A co z domyślnym arkuszem stylów motywu, czy należy go również kolejkować?

byronyasgur
źródło
zachęcają do tego wymagania przeglądu tematu. codex.wordpress.org/… chociaż opcjonalnie MOŻESZ po prostu połączyć rel = główny arkusz stylów w nagłówku
helgatheviking
1
Domyślny arkusz stylów (np. Style.css w katalogu głównym motywu) jest ładowany automatycznie, więc nie trzeba go kolejkować. Jeśli cały Twój CSS dla twojego motywu jest zawarty w tym arkuszu stylów (lub jeśli używasz reguł „importowania” w tym arkuszu stylów, aby załadować CSS), nie jest wymagana kolejna kolejkowanie. Jednak dla większej elastyczności motywów potomnych korzystne może być warunkowe umieszczanie w kolejce dodatkowego CSS, który może zostać pominięty przez dowolny motyw potomny, jak ilustruje @kaiser.
Tom Auger

Odpowiedzi:

17

Ważne jest, aby kolejkować arkusz stylów, ponieważ pozwoli on motywom potomnym na elastyczność w usuwaniu z kolejki, a także umożliwi umieszczenie go na liście zależności i wielu innych rzeczy. Zasadniczo pozwala to na większą elastyczność, zarówno dla Ciebie, jak i dla innych programistów, którzy wchodzą w interakcje z Twoim kodem.

Należy również pamiętać, że użycie domyślnego arkusza stylów w kompozycji nie jest wymagane. Arkusz stylów musi być OBECNY, ale jeśli użyjesz go tylko do nazwania swojego motywu, ustawienia wersji itp., Wordpress jest w zupełności w porządku, podobnie jak ludzie, którzy zatwierdzają motywy dla głównego repozytorium.

mor7ifer
źródło
17

Jako dodatek do drugiej odpowiedzi @ m0r7if3r:

Można użyć current_theme_supports()do załadowania arkusza stylów motywów nadrzędnych tylko wtedy, gdy istnieje obsługa motywów.

function add_supported_stylesheets()
{
    if ( current_theme_supports( 'parent-stylesheet' ) )
        wp_enqueue_style( 'main', get_stylesheet_directory_uri().'/style.css', array(), filemtime( get_stylesheet_directory().'/style.css' );
}

// In your parent themes bootstrap in the functions.php file
// Add the theme support:
add_theme_support( 'parent-stylesheet' );
// Then add the stylesheet:
add_action( 'after_setup_theme', 'add_supported_stylesheets', 20 );

Zauważ, że ta funkcja dodaje filemtimenumer wersji. aby zapobiec buforowaniu przeglądarki w przypadku zmiany zawartości plików.

Umożliwi to użytkownikom wyłączenie arkusza stylów w bootstrapu motywów potomnych za pomocą pojedynczego połączenia fn:

remove_theme_support( 'parent-stylesheet' );
// ...or...
add_theme_support( 'parent-stylesheet' );
kajzer
źródło
3

Innym powodem kolejkowania jest to, że pozwala wtyczkom robić różne rzeczy ze stylami. Na przykład Better WordPress Minify automatycznie i połączy pliki CSS, a WP-LESS skompiluje pliki LESS i buforuje je w locie. Obaj robią to, podpinając się do kolejki stylów i przetwarzając pliki w kolejce.

Mogą istnieć konkretne powody, dla których chcesz wykluczyć niektóre style z takich rzeczy, ale ogólnie dobrze jest udostępnić swoje style tak przydatnym funkcjom.

Steve Taylor
źródło