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 Wochenrückblick #32: Woo 3.1, Live Chats und Snippet Tutorials

von Michael Firnkes

Die neue WooCommerce-Version verbessert hauptsächlich den Import und Export von Produkten. Und: Live Chats können - richtig eingesetzt - deinen Umsatz an ...

Weiterlesen

Anleitung: SEPA Lastschrift und Bankeinzug mit WooCommerce einrichten

von Michael Firnkes

Umfragen zufolge wollen viele Shopkunden per Bankeinzug bezahlen. Wir zeigen dir Schritt für Schritt, wie du die beliebte Bezahlvariante mit WooCommerce u ...

Weiterlesen

Wir suchen Verstärkung: WordPress PHP Entwickler/in in Dresden oder Homeoffice

von Michael Firnkes

MarketPress wächst, dank unserer WooCommerce-Suite German Market. Wir suchen dich - um diesen Erfolg weiterzuführen, und zur Entwicklung neuer Produkte. ...

Weiterlesen

WooCommerce Wochenrückblick #29: Beliebteste Zahlungsarten und sinnvolle Produktauswahl

von Michael Firnkes

Kauf auf Rechnung ist beliebter, als gedacht. Und zu viele Produkte können deine Kunden auch verwirren - wenn sie schlecht präsentiert werden. Dies und m ...

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="">