remove_action, wp_dequeue_style, class, plugin

  • Hi,
    in einem Plugin (MCI_Footnotes) werden CSS- und Js-Dateien wi folgt eingebunden:

    PHP
    public function registerPublic() {
            wp_enqueue_style('mci-footnotes-css-public', plugins_url('../css/public.css', __FILE__));
            wp_enqueue_script('mci-footnotes-js-jquery-tools', plugins_url('../js/jquery.tools.min.js', __FILE__));
        }

    Dadurch entstehen URLs mit einem Verzeichniswechsel (/plugins/footnotes/class/../css/public.css). Das darf aus Sicherheitsgründen bei eine WP-Installation nicht sein.

    registerPublic() wird in der gleichen Klasse über eine weitere Funktion aufgerufen:

    PHP
    public function run() {
            ...
            // Register all Public Stylesheets and Scripts
            add_action('init', array($this, 'registerPublic'));
            // Enqueue all Public Stylesheets and Scripts
            add_action('wp_enqueue_scripts', array($this, 'registerPublic'));
    
    
        }

    Wie kann ich, um die Pfade anzupassen, über remove_action, wp_dequeue_style oder so hier eingreifen?

    Danke

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Zitat

    Dadurch entstehen URLs mit einem Verzeichniswechsel (/plugins/footnotes/class/../css/public.css). Das darf aus Sicherheitsgründen bei eine WP-Installation nicht sein.

    aha, ok- wieso und wer sagt das oder woher hast das?

    und was magst du haben - aus Sicherheitsgründen?

  • Zitat

    aha, ok- wieso und wer sagt das oder woher hast das?

    Das sind interne Dinge. Tun auch nichts zur Sache. Das ist ein Projekt, wo Sicherheit groß geschrieben wird. Und da ist das ein Thema.

    Zitat

    und was magst du haben - aus Sicherheitsgründen?

    Einen ganz normalen Pfad. In diesem Fall so etwas /plugins/footnotes/css/public.css

  • Grundsätzlich machst Du das über remove_action und hier unter Verwendung des Klassennamens. Ohne aber den gesamten Plugincode (zumindest den abhängigen) zu kennen, kann ich Dir nicht sagen ob das gelingt, da es zu einem Timingproblem kommen kann.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Hab's.
    Mich hat das this in der add_action etwas gebremst.
    Bei der Initialisierung des Plugins wurde das Plugin korrekt in einer Variabeln gespeichert, die man dann natürlich in der remove_action nutzen kann:

    remove_action('init', array($className, 'registerPublic'));

    Danke

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!