Bevor ich anfange, möchte ich anerkennen, dass es einige wirklich gute Artikel gibt, die darauf abzielen, Skripte basierend auf Seiten- / Post-Inhalten bedingt in die Warteschlange zu stellen.
- WordPress Plugin Development - So fügen Sie CSS und JavaScript bedingt und nur dann ein, wenn dies von den Posts benötigt wird
- So laden Sie JavaScript wie einen WordPress-Master
Diese sind großartig, aber viel fortgeschrittener als das, was ich tun möchte.
Ich habe das Gefühl, dass die Antwort die integrierte is_page()
Funktion ( Codex ) verwendet, aber wenn ich versuche, sie zu verwenden, bricht die Site oder funktioniert einfach nicht.
Ich glaube, ich führe die bedingte Logik nur an der falschen Stelle aus.
Folgendes habe ich versucht, zu meiner functions.php hinzuzufügen:
function wpse39130_register_more_stylesheets() {
wp_register_style( 'stylesheet_name', get_stylesheet_directory_uri() . '/stylesheet.css' );
}
add_action( 'init', 'wpse39130_register_more_stylesheets' );
function wpse39130_conditionally_enqueue_my_stylesheet() {
// only enqueue on product-services page slug
if ( is_page( 'products-services' ) ) {
wp_enqueue_style( 'stylesheet_name' );
}
}
add_action( 'wp_enqueue_scripts', 'wpse39130_conditionally_enqueue_my_stylesheet' );
Wenn ich den bedingten Teil davon entferne, wird das Stylesheet erfolgreich in die Warteschlange gestellt, damit ich weiß, dass dies funktioniert.
css
conditional-content
wp-enqueue-style
Evan Mattson
quelle
quelle
Antworten:
Ich habe Ihren Code kopiert, in meine Entwicklungsumgebung eingefügt, nur den Seitennamen geändert und es funktioniert einwandfrei. Sind Sie sicher, dass es nicht in die Warteschlange gestellt wird und Sie nur falsch darauf hingewiesen haben oder dass die Seite nicht falsch benannt ist oder so?
quelle
Was Sie haben, ist richtig - Sie verbinden es einfach mit der falschen Aktion. Versuchen Sie die Aktion "wp" anstelle von "init". Wenn init ausgeführt wird, funktioniert is_page () noch nicht richtig.
EDIT: Ich liege falsch. Ich dachte, Sie hätten add_my_stylesheet an init angehängt, aber Sie tun es nicht. is_page sollte mit der Aktion enqueue_scripts funktionieren. Entschuldigung ... mach weiter ...
quelle
Ich habe versucht, dem gleichen Code zu folgen und zu sehen, ob ich das gleiche Ergebnis erzielen kann. Was mir aufgefallen ist, ist, dass is_page () nicht wie erwartet funktioniert. Also folgte ich der globalen Variablen $ post und überprüfte den Kategorienamen / Slug. Letztere verwendeten einen einfachen Textvergleich, um die Aktion zu bestimmen.
Der Wert der Kategorie, wenn es sich nur um eine Kategorie (nicht um eine Unterkategorie) handelt
Für die Unterkategorie wird die folgende Variable ausgefüllt
Verwenden Sie nun je nach Bedarf den folgenden Code, um den Namen der Unterkategorie zu überprüfen:
Vollständiger Code:
Beispiel: * Kein zusätzliches CSS http://whatsq.com/category/gst16/
* Zusätzliches CSS mit Hintergrund nur aus der oben genannten Kategorie http://whatsq.com/information-technology/shopping-information-technology/mothers-day-gift-plan-show-mom-the-love-with-flowers-and- und mehr/
quelle