Diese CSS-Füllung funktioniert, aber ist dies eine gute Praxis?

9

Ich versuche, ein dynamisches CSS in mein Plugin aufzunehmen. Ich habe überall gesucht, aber keinen Fall gefunden, der dem ähnlich ist, was ich mache. Und was ich dazu benutze, ist das Hinzufügen einer CSS-Datei direkt am Ende meiner Plugin-PHP-Datei nach dem Schließen des PHP-Tags, ?>ohne andere Dinge wie das Aufrufen von wp head usw. hinzuzufügen.

Hier ist das Beispiel des Codes, den ich direkt in das Ende der Datei meines Plugins eingefügt habe:

<style type="text/css">

   .innertrow { background-color: <?php get_options('css_value');?>}

</style>

Ist das eine gute Praxis?

Ari
quelle

Antworten:

11

Sie können wp_add_inline_style () verwenden , um ein Stylesheet hinzuzufügen, das Sie bereits definiert haben, z. B. in Ihrem Plugin. Auf diese Weise kann ein Optionsbildschirm oder andere Benutzereinstellungen die endgültige Stilausgabe beeinflussen.

Dies kann jedoch sehr mühsam werden, je nachdem, wie viele Änderungen Sie dem Benutzer die Macht geben. Soweit ich weiß, ist dies jedoch die "beste Vorgehensweise".

GhostToast
quelle
1
Und so gibt es Funktionen, die ich in WP nicht kenne. :) +1 Natürlich.
gmazzap
2

Natürlich ist dies keine gute Vorgehensweise, da es von Wordpress als Plugin-Fehler angesehen wird. Bei der Plugin-Aktivierung wird folgende Fehlermeldung ausgegeben:

The plugin generated xxx characters of unexpected output during activation. If you notice headers already sent messages, problems with syndication feeds or other issues, try deactivating or removing this plugin.

Wobei xxx die Anzahl der Codes + Leerzeichen ist, die Sie nach dem ?>Tag einfügen. Dies entspricht dem Auffinden von Leerzeichen oder nicht akzeptierten Codes vor dem ersten <?phpTag in Ihrem Haupt-Plugin und danach.

Ari
quelle
1

Ich glaube, es ist möglich, eine CSS-Datei mit PHP dynamisch zu schreiben, aber Sie müssten mehr darüber herausfinden, ich weiß selbst nicht viel darüber. Ich habe vor, es bald zu tun, da ich bemerkte, dass Leute eine Menge CSS in das Thema einfügten, an dem ich arbeitete. Es ist in vielerlei Hinsicht eine schlechte Praxis, also am besten vermeiden, wo es möglich ist. Leider gibt es nur 24 Stunden am Tag ...!

Dan
quelle
1

Wenn Sie dynamisches CSS hinzufügen müssen und noch kein Stylesheet hinzugefügt haben, an das Sie es anhängen möchten, können Sie es in den wp_headAktions-Hook einbinden und ausgeben :

<?php
function wpse_111373_output_plugin_css() {
    ?>
    <style type="text/css">
        .innertrow { background-color: <?php get_option('css_value'); ?>;}
    </style>
    <?php
}
add_action( 'wp_head', 'wpse_111373_output_plugin_css' );

Fügen Sie das CSS nicht einfach am Ende Ihrer Plugin-Datei hinzu. Soweit dies jedoch eine "Best Practice" ist, weiß ich es nicht. :) :)

jjeaton
quelle