Wie wichtig ist es, das Stylesheet eines Themas in eine Warteschlange zu stellen?

19

Ich habe das Netz auf der Suche nach einer Antwort darauf durchforstet, aber aus irgendeinem Grund kann ich nur tatsächliche Beispiele finden, aber ohne diese spezielle Erklärung, die im Fall von Skripten klar ausgedrückt wird. Kann mir jemand erklären, warum es wichtig / vorteilhaft ist, Stile bei der Entwicklung eines Themas einzuordnen, anstatt sie nur <link rel=stylesheet>in der Datei header.php zu verwenden ?

Und was ist mit dem Standard-Stylesheet des Themas, sollte dieses auch in die Warteschlange gestellt werden?

Byronyasgur
quelle
Es wird durch die Anforderungen zur Themenüberprüfung gefördert. codex.wordpress.org/… obwohl Sie optional nur rel = das Haupt-Stylesheet in der Kopfzeile
verlinken können
1
Das Standard-Stylesheet (dh style.css im Stammverzeichnis Ihres Themas) wird automatisch geladen und muss nicht in die Warteschlange gestellt werden. Wenn Ihr gesamtes CSS für Ihr Thema in diesem Stylesheet enthalten ist (oder Sie zum Laden von CSS 'Import'-Regeln in diesem Stylesheet verwenden), ist kein weiteres Enqueueing erforderlich. Für eine größere Flexibilität in untergeordneten Themen kann es jedoch vorteilhaft sein, zusätzliches CSS, das von jedem untergeordneten Thema weggelassen werden kann, bedingt in die Warteschlange zu stellen, wie @kaiser zeigt.
Tom Auger

Antworten:

17

Es ist wichtig, das Stylesheet in eine Warteschlange zu stellen, da untergeordnete Themen die Flexibilität haben, es zu entfernen, und es für Abhängigkeiten und eine Vielzahl anderer Dinge aufgelistet werden kann. Dies ermöglicht im Allgemeinen eine größere Flexibilität, sowohl für Sie als auch für alle anderen Entwickler, die mit Ihrem Code interagieren.

Es ist auch wichtig zu beachten, dass die Verwendung des Standard-Stylesheets in Ihrem Design nicht erforderlich ist. Das Stylesheet muss PRESENT sein, aber wenn Sie es nur zum Benennen Ihres Themas, Festlegen der Version usw. verwenden, ist WordPress VOLLSTÄNDIG in Ordnung, ebenso wie die Personen, die Themen für das Haupt-Repository genehmigen.

mor7ifer
quelle
17

Als Ergänzung zu der anderen Antwort von @ m0r7if3r:

Sie können current_theme_supports()das übergeordnete Stylesheet nur laden, wenn es Unterstützung für Themen gibt.

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

Beachten Sie, dass diese Funktion filemtimedie Versionsnummer hinzufügt . um Browser-Caching zu verhindern, wenn der Inhalt der Dateien geändert wurde.

Auf diese Weise können Ihre Benutzer das Stylesheet im Bootstrap für untergeordnete Designs mit einem einfachen FN-Aufruf deaktivieren:

remove_theme_support( 'parent-stylesheet' );
// ...or...
add_theme_support( 'parent-stylesheet' );
Kaiser
quelle
3

Ein weiterer Grund für das Einreihen in die Warteschlange besteht darin, dass Plugins die Stile bearbeiten können. Zum Beispiel wird Better WordPress Minify automatisch CSS-Dateien verketten und WP-LESS wird Ihre LESS-Dateien kompilieren und sie im laufenden Betrieb zwischenspeichern. Sie tun dies beide, indem sie sich in die Styles-Warteschlange einhängen und die dort aufgereihten Dateien verarbeiten.

Es mag bestimmte Gründe geben, warum Sie bestimmte Stile von solchen Dingen ausschließen müssen, aber im Allgemeinen ist es gut, Ihre Stile für solch nützliche Funktionen verfügbar zu machen.

Steve Taylor
quelle