Reihenfolge der Pluginausführung beeinflussen

  • Ich wusste nicht ob es besser in Konfiguration oder Plugins passt. Konfiguration erschien mir aber dann doch schlüssiger.
    Folgendes Problem stellt sich mir ...

    Ich habe zwei Plugins
    1. Intypo, welches mir deutsche Anführungszeichen (die einleitenden " nach unten) macht
    und
    2. deans_code_highlighter, das Syntax Highlighting bei verschiedenen Sourcecodes erzeugt.

    Der Highlighter erwartet <pre lang="bla"> tags, und wandelt diese in <div> tags, um das highlighting zu realisieren. Intypo ignoriert u.a. <pre> tags bei der Konvertierung der Anführungszeichen.
    Leider wird aber der Highlighter vor Intypo ausgeführt, so dass Intypo die <div> sieht und keine <pre> mehr. Deshalb konvertiert es dann doch die "".

    Ich habe bereits versucht Intypo umzubenennen und auch den Namen des Plugins im Source so geändert, dass es als erstes in der Liste auftaucht. Hat aber leider beides nichts gebracht.
    Hat jemand eine Idee, wie ich WP dazu bringe, Intypo vor dem Highlighter auszuführen?

    • 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 habe wohl das selbige Problem wie bereits von blodder beschrieben, ein Plugin wird vor dem anderen ausgeführt, sodass sich dieses auch entsprechend vor diesem auf der Seite positioniert.
    --> Ein Plugin für "Social Bookmarks" und eines für "Ähnliche Artikel"
    Hatte ebenfalls erst versucht, die Reihenfolge des Aufrufs per Umbenennung in den Griff zu bekommen, hat aber nichts gebracht.

    Wegen add_filter() bin ich etwas verdutzt, ich finde in den *.php Files der einzelnen Plugins diesen Eintrag, hier geht es aber wohl um die einzelnen, plugin internen Funktionen.
    Wo muss ich den Eintrag add_filter() suchen, wenn es um den generellen Aufruf der Funktionen (Plugins) aus dem Artikel heraus geht?
    In den Theme Files? Hier hatte ich bereits in der single.php geschaut, über die der Artikel erstellt wird. Hatte aber keinen Eintrag gefunden.
    Bitte um Rat.

  • Du musst in den beiden Plugins die addfilter Anweisungen finden.
    Eine Anweisung wird wahrscheinlich ähnliche wie

    Code
    addfilter('content', ...)

    sein.

    Die Addfilter anweisung kennt drei Parameter. Der Dritte Parameter ist eine Zahl. Der muss nicht angegeben sein.
    Dieser Parameter bestimmt die Priorität der Ausführung des Filters. Je höher die Zahl, desto später wird der Filter ausgeführt.

    Setze also unterschiedlich hohe Zahlen ein, um die Reihenfolge der Ausführung zu bestimmen.

  • Hallo blodder,
    vielen Dank für deine Rückmeldung, Spitze!

    Ganz recht, ich habe zwei Plugins, in denen beide der Code, teilweise mehrmals, enthalten ist.
    sociable-zyblog-edition:

    Code
    add_filter('init', 'sociable_init_locale');
    add_filter('the_content', 'sociable_display_hook');
    add_filter('the_excerpt', 'sociable_display_hook');

    similar-posts:

    Code
    add_filter('the_content', 'similar_posts_for_feed');

    Im Moment wird das similar-posts Plugin vor dem sociable-zyblog-edition Plugin angezeigt, ich will dies aber genau anderst herum.
    Dann müsste ich den Code praktisch so anpassen:
    sociable-zyblog-edition:

    Code
    add_filter('init', 'sociable_init_locale', 10);
    add_filter('the_content', 'sociable_display_hook', 10);
    add_filter('the_excerpt', 'sociable_display_hook', 10);

    Oder gar nichts eingeben, weil die Standard-Priorität für das Ausführen der Funktionen sowieso bei 10 liegt, kann das sein?

    similar-posts:

    Code
    add_filter('the_content', 'similar_posts_for_feed', 20);

    Besten Dank für eine Antwort.

  • Hallo blodder,

    ich habe das jetzt mal ausprobiert. Sprich die Plugins deaktiviert, die Änderungen wie beschrieben durchgeführt und im Anschluss die Plugins wieder aktiviert. Jedoch hat sich leider keine Änderung ergeben. ;(

    Das similar-posts Plugin wird weiterhin vor dem Sociable Plugin angezeigt, obwohl ich dem Sociable die 10 zugewiesen habe und es deswegen eigentlich vor dem similar-posts Plugin(20) ausgeführt werden müsste.

    Fällt Dir ein, wo noch eine maßgebende add_filter Funktion versteckt sein könnte?

    Ich habe soeben schließlich nur die *.php Files der einzelnen Plugins angepasst.
    Gäbe es noch eine weitere Datei, die den eigentlichen Aufruf dieser Plugindateien steuert und in der auch noch die Prioritäten hinterlegt werden müssten?

    Besten Dank.

Jetzt mitmachen!

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