Adventskalender Tag 10 – Rekursion in Hooks verhindern

Der heutige Adventskalenderbeitrag richtet sich speziell an die Entwickler unter uns, die mit Rekursionen zu kämpfen haben. Angenommen, wir befinden uns innerhalb eines save_post-Hook-Kontext und möchten aus welchen Gründen auch immer wp_update_post() nutzen, sieht die Funktion in etwa so aus:

Das Problem hierbei ist, dass wp_update_post() den ‚ save_post‘-Hook triggert. Damit befinden wir uns in einer Endlosschleife. Absichern können wir das Ganze, indem wir einfach eine temporär definierte Konstante nutzen:

Dieses Beispiel kann man nutzen, um andere mögliche Rekursionen, wie zum Beispiel bei wp_update_user(), zu nutzen.

Beitrag teilen

Author Avatar

Thomas ist Senior-WordPress-Entwickler bei der Inpsyde GmbH, der aber auch über den Tellerand hinaus schaut und sprachunabhängig entwickeln kann. Der 1985 geborene Wahl-Düsseldorfer macht in seiner Freizeit Musik, spielt Spiele, kocht gern und verbringt seine Zeit am liebsten mit seiner Frau.

Auch interessant:

WooCommerce 3.0: Neue Galerie für Produktbilder, mehr Geschwindigkeit und Update-Hinweise

von Michael Firnkes

Das Team von WooCommerce hat die Version 3.0 seines extrem erfolgreichen Onlineshop-Systems veröffentlicht. Das Release läuft unter dem Namen "Bionic But ...

Weiterlesen

Anleitung: Dateien an WooCommerce-E-Mails anhängen

von Michael Firnkes

Mit German Market kannst du den E-Mails von WooCommerce PDF-Anhänge und sonstige Dateien hinzufügen. Zum Beispiel AGBs, ein Rücknahmeformular oder belie ...

Weiterlesen

Anleitung: Bestellungen manuell annehmen mit WooCommerce

von Michael Firnkes

In manchen Fällen will man eingehende Bestellungen zunächst sichten und dann freigeben, bevor es zum Abschluss eines Kaufvertrages kommt. Wir zeigen dir, ...

Weiterlesen

Anleitung: Lebensmittelinformations-Verordnung (LMIV) mit WooCommerce umsetzen

von Michael Firnkes

Du verkaufst Lebensmittel in deinem Onlineshop? Dann musst du diese unter Umständen nach ganz bestimmten Regeln deklarieren. Wir zeigen dir, wie sich dies ...

Weiterlesen

Kommentare

1 Kommentar

  1. #1

    Und was ist wenn schon ein anderes Plugin oder Theme die gleiche globale Variable definiert hat? Autsch…

    Was halten wir denn davon:

    Durch das

    wird die Variable

    beim ersten Aufruf der Funktion einmalig mit dem Wert initialisiert der die Funktion

    zurück gibt (z.B. 1)
    Wird die Funktion erneut aufgerufen, gibt die Funktion

    einen um 1 erhöhte Wert zurück, die Variable

    hingegen hat den gleichen Wert wie beim ersten Aufruf.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Du kannst folgende HTML Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Abonniere unseren Newsletter

Trage hier deine E-Mail Adresse ein, damit du unseren Newsletter abonnieren kannst.