Ich habe kürzlich ein Plugin veröffentlicht, WP Coda Slider , das Shortcodes verwendet, um einen jQuery-Slider zu jedem Beitrag oder jeder Seite hinzuzufügen. Ich füge in der nächsten Version eine Optionsseite hinzu und möchte einige CSS-Optionen einbinden, aber ich möchte nicht, dass das Plugin die Stiloptionen als Inline-CSS hinzufügt. Ich möchte, dass die Auswahlmöglichkeiten dynamisch zur CSS-Datei hinzugefügt werden, wenn sie aufgerufen wird.
Ich möchte auch vermeiden, fopen zu verwenden oder aus Sicherheitsgründen in eine Datei zu schreiben.
Ist so etwas einfach zu bewerkstelligen, oder ist es besser, die Stilauswahl direkt zur Seite hinzuzufügen?
plugin-development
css
options
Chris_O
quelle
quelle
wp_enqueue_style()
(undwp_enqueue_script()
) mit einem Funktionsnamen anstelle eines Dateinamens aufzurufen und meine Funktion das CSS (oder JS) generieren zu lassen, aber es letztendlich über ein verknüpftes Stylesheet einzubeziehen. Soweit ich weiß, ist dies mit denwp_equeue_*()
Funktionen nicht möglich . Vielleicht sollten wir ein Trac-Ticket einreichen?Antworten:
Verwenden Sie
wp_register_style
undwp_enqueue_style
, um das Stylesheet hinzuzufügen. Fügen Sie NICHT einfach einen Stylesheet-Link hinzuwp_head
. Durch das Einreihen von Stilen können andere Plugins oder Designs das Stylesheet bei Bedarf ändern.Ihr Stylesheet kann eine .php-Datei sein:
my-stylesheet.php würde so aussehen:
quelle
Das dynamische Erstellen und anschließende Laden einer CSS-Datei erhöht die Leistung einer CSS-Datei erheblich. Dies gilt insbesondere dann, wenn Variablen in der CSS-Datei über WP verarbeitet werden sollen. Da für eine Seite zwei verschiedene Dateien erstellt werden, wird WP zweimal gestartet und führt alle DB-Abfragen zweimal aus. Dies ist ein großes Durcheinander.
Wenn sich Ihr Schieberegler nur auf einer Seite befindet und Sie möchten, dass die Stile dynamisch festgelegt werden, fügen Sie am besten einen Stilblock zur Kopfzeile hinzu.
In der Reihenfolge der Leistung:
quelle
So mache ich es normalerweise:
quelle
Ich hatte Schwierigkeiten mit all den Empfehlungen dieser Art - vielleicht bin ich ein bisschen dick, oder vielleicht haben die Mitwirkenden die gemeinsame Note verloren.
Ich habe mich entschlossen, dies in der Plug-in-PHP-Datei zu codieren: -
Es scheint zu funktionieren. Es wird nur auf den Seiten geladen, die das Plugin verwenden. Es wird nach dem h1-Tag geladen, was für mich in Ordnung ist. Ich kann nicht sehen, wie es effizienter oder klarer sein könnte.
.... aber vielleicht irre ich mich - ich habe gesagt, ich war ein bisschen dick.
quelle
<link>
Elemente in den Seitenkopf ladenUpdate seit Wordpress 3.3
Es gibt eine Funktion namens wp_add_inline_style, mit der Stile basierend auf den Theme- / Plugin-Optionen dynamisch hinzugefügt werden können. Dies kann verwendet werden, um eine kleine CSS-Datei in den Kopf einzufügen, die schnell und effizient sein sollte.
quelle