Ich arbeite an einem Plugin, um nutzergenerierte Inhalte und eine durchschnittliche Bewertung eines bereitgestellten Dienstes anzuzeigen. Die Daten kommen alle aus einer XML-Datei, die woanders gehostet wird, und alles funktioniert großartig! Nun, als ich das Plugin für WordPress veröffentlichen wollte, damit andere es benutzen können, musste ich einige Änderungen am Code vornehmen, sie ließen mich nicht die und
Tags für das CSS verwenden.
Einige der Optionen im CSS basieren auf den Benutzereinstellungen, die sie auf der Optionen-Seite für das Plugin festgelegt haben. Ich habe verschiedene Möglichkeiten ausprobiert, es zum Laufen zu bringen, aber es wird das Styling nicht richtig laden.
Aufgrund der Einstellungen, die ein Benutzer vornehmen kann, habe ich die CSS-Dateien in PHP-Dateien umgewandelt (auf diese Weise konnte ich alles am selben Ort behalten).
In der Haupt-Plugin-Datei habe ich die folgenden Zeilen: add_action( 'admin_enqueue_scripts', 'kvssm_enqueue_styles' );
Ich habe dies auch mit wp_enqueue_scripts
versucht, um das gleiche Ergebnis zu erhalten, dass das Styling nicht angewendet wurde.
Die aufgerufene function:
function kvssm_enqueue_styles( ) { wp_enqueue_style( 'reviewCSS', plugins_url( '/review-style.php', __FILE__ ), array(), null ); wp_enqueue_style( 'widgetCSS', plugins_url( '/widget-style.php', __FILE__ ), array(), null ); }
Ich habe mehrere Wiederholungen dieser function mit und ohne wp_register_style
Die letzte Methode, die ich versucht habe, war in der css.php folgende Zeilen hinzuzufügen:
Ich versuche, das CSS wie folgt anzuwenden:
color: ;
Diese letzte Methode wird jedoch nicht funktionieren, weil ein schwerwiegender Fehler das Include verursacht, add_action wird nicht als function erkannt. Der einzige Grund, warum ich das include
ist, dass die functionen die benötigten Einstellungen abrufen css.php
stattdessen verursacht es immer noch fatale Fehler, diesmal wegen der plugins_url()
nicht erkannt wird.
Die drei functionen:
function kvssm_get_directory( ) { $dir = plugins_url( __DIR__ ); $dirA = explode( 'public_html', $dir ); $dir = $dirA[ 1 ]; return $dir; } function kvssm_get_options_kvssm( ) { $options = get_option( 'kvssm_settings' ); return $options; } function kvssm_get_options_pvssm( ) { $options = get_option( 'pvssm_settings' ); return $options; }
Weiß jemand, wie ich das CSS einrichten sollte, damit es richtig angezeigt wird? Einige functionen, die wichtig sein könnten:
do_shortcode()
enthält eine Vorschau des do_shortcode()
mit do_shortcode()
Wenn Sie Inline-CSS hinzufügen möchten, verwenden Sie wp_add_inline_style()
.
< ?php /** * Plugin Name: WPSE 257470 * Description: WordPress StackExchange question 257470 * Plugin URI: https://wordpress.stackexchange.com/questions/257470/ * Author: Nathan Johnson * Licence: GPL2+ * Licence URI: https://www.gnu.org/licenses/gpl-2.0.en.html */ //* Don't access this file directly defined( 'ABSPATH' ) or die(); if( ! class_exists( 'wpse_257470' ) ): class wpse_257470 { public function plugins_loaded() { add_action( 'wp_enqueue_scripts', [ $this, 'wp_enqueue_scripts' ] ); } public function wp_enqueue_scripts() { //* It's necessary to have a 'base' CSS file that we can attach to wp_enqueue_style( 'wpse-257470', plugin_dir_url( __FILE__ ) . 'style.css' ); $color = '#257470'; $custom_css = ".custom_color { color: $color };"; wp_add_inline_style( 'wpse-257470', $custom_css ); } } add_action( 'plugins_loaded', [ new wpse_257470(), 'plugins_loaded' ] ); endif;