1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Reihenfolge der Pluginausführung beeinflussen

Dieses Thema im Forum "Konfiguration" wurde erstellt von blodder, 5. April 2008.

  1. blodder

    blodder Member

    Registriert seit:
    5. April 2008
    Beiträge:
    7
    Zustimmungen:
    0
    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?
     
  2. marX

    marX Well-Known Member
    Ehrenmitglied

    Registriert seit:
    5. Oktober 2006
    Beiträge:
    12.943
    Zustimmungen:
    0
    Ich vermute mal, die Plugins werden als Filter-Hooks ausgeführt. Diese kennen einen Prioritäts-Parameter:
    Plugin API « WordPress Codex

    Einfach entsprechend die Hook-Aufrufe (add_filter()) entsprechend anpassen.
     
  3. blodder

    blodder Member

    Registriert seit:
    5. April 2008
    Beiträge:
    7
    Zustimmungen:
    0
    Treffer versenkt!
    Du lagst mit deiner Vermutung zu addfilter() genau richtig. So konnte ich das Problem lösen.
    Danke.
     
  4. goldcoast

    goldcoast New Member

    Registriert seit:
    11. März 2010
    Beiträge:
    3
    Zustimmungen:
    0
    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.
     
  5. blodder

    blodder Member

    Registriert seit:
    5. April 2008
    Beiträge:
    7
    Zustimmungen:
    0
    Du musst in den beiden Plugins die addfilter Anweisungen finden.
    Eine Anweisung wird wahrscheinlich ähnliche wie
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    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.
     
  6. goldcoast

    goldcoast New Member

    Registriert seit:
    11. März 2010
    Beiträge:
    3
    Zustimmungen:
    0
    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:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    similar-posts:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    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:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    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:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Besten Dank für eine Antwort.
     
  7. blodder

    blodder Member

    Registriert seit:
    5. April 2008
    Beiträge:
    7
    Zustimmungen:
    0
    Tip top .. alles richtig.
    Und, ist das Ergebnis wie gewünscht?
     
  8. goldcoast

    goldcoast New Member

    Registriert seit:
    11. März 2010
    Beiträge:
    3
    Zustimmungen:
    0
    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.
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden