Prio zw. add_shortcode und add_filter

  • Hallo,

    ich benutzte seit einiger Zeit das Plugin "Text Hover", mit welchem ich auch recht zufrieden bin (bei anderen ähnlichen Plugins hatte ich häufig Probleme beim Ersetzten von Zeichenketten mit Umlauten).

    Vor kurzem habe ich in meinem Theme einen neuen Shortcode 'kfz' erstellt:

    [kfz art='pkw' ...]

    'pkw' ist auch im "Text Hover Plugin" hinterlegt und wird somit ersetzt.

    Das Problem ist, dass zuerst die Funktion add_filter vom Plugin "Text Hover" ausgeführt wird und damit der Shortcode beschädigt wird, der erst danach bearbeitet wird.

    Kann man die Reihenfolge irgendwie steuern?

    Das Plugin würde ich ungern umschreiben, da sonst alle Änderungen nach einem Update verloren sind. Der Shortcode wir im Theme definiert, welches eine eigene Entwicklung ist, d.h. Anpassungen wären hier am besten aufgehoben.

    Gruß, Hagen

    • 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

  • Ich bin mir nicht sicher aber die Filter werden in einem Stack gespeichert und danach abgearbeitet.
    Mit dem Aufruf von add_filter kannst du eine Priorität vergeben mit der die Position im Stack festgelegt werden kann. Damit sollte sich die Reihenfolge manipulieren lassen.

    Siehe: http://codex.wordpress.org/Function_Reference/add_filter

  • An das add_filter wollte ich ja gerade nicht dran, da dies das Plugin ist, welches ggf. aktualisiert wird und somit meine Anpassungen überschrieben werden.

    Eine Lösung für mich hätte ich dann doch eher zufällig gefunden:

    "Text hover" ersetzt mit diesem Code:

    Zitat

    $new_text = "$1<acronym title='" . esc_attr( addcslashes( $hover_text, '\\$' ) ) . "'>$2</acronym>$3";


    Die mehrfachen einfachen Anführungsstriche machen Probleme. Aus

    Zitat

    [kfz art='PKW' ...]


    wird durch das Plugin

    Zitat

    [kfz art='<acronym title='Personenkraftwagen'>PKW</acronym>' ...]

    Dadurch gibt es bei

    Zitat

    extract(shortcode_atts( array('art' => '', ... ), $atts));


    Fehler.

    Lösung:

    Zitat

    [kfz art="PKW" ...]

    Trotzdem würde es mich interessieren, ob es noch andere sinnvolle Lösungen gibt, da es für den Benutzer/Redakteur nicht unbedingt eindeutig ist, ob er einfach oder doppelte Anführungsstriche nutzen kann/soll.

    Gruß, Hagen

Jetzt mitmachen!

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