Beim Speichern eines Artikels müssen wir eine Funktion an den Hook „save_post“ hängen. Der Zweck dieser Funktion besteht darin, den Artikeltitel zu ändern und den Namen des Autors vor dem Artikeltitel hinzuzufügen Aufruf der Funktion wp_update_post. Der Beispielcode lautet wie folgt.
add_action('save_post', 'wprs_update_post'); function wprs_update_post($post_id) { $title = get_the_title($post_id); $title = "一刀:" . $title; $args = [ 'ID' => $post_id, 'post_title' => $title, ]; wp_update_post($args); }
Im obigen Code tritt der Hook „save_post“ während des Aufrufvorgangs der Funktion „wp_update_post“ auf. Über den Hook „save_post“ rufen wir die Funktion „wp_update_post“ auf. Infolgedessen lief das Programm unermüdlich weiter.
Erfahrene Programmierer können dieses Problem leicht entdecken, aber der Computer weiß nicht, dass es sich um eine Endlosschleife handelt. Wir können dem Computer keine Vorwürfe machen, schließlich ist er nur eine hirnlose Maschine. Was wir tun können, ist, während des Entwicklungsprozesses so vorsichtig wie möglich zu sein, um das Auftreten von Endlosschleifen zu vermeiden.
Also, wie löst man diese Endlosschleife in WordPress? Tatsächlich ist die Methode sehr einfach.
So vermeiden Sie die Endlosschleife in WordPress
Es ist immer noch der obige Code. Mit einer geringfügigen Änderung können wir diese Endlosschleife perfekt vermeiden. Das Folgende ist der geänderte Code. Im Vergleich zum obigen Endlosschleifencode haben wir nur zwei Zeilen hinzugefügt.
add_action('save_post', 'wprs_update_post'); function wprs_update_post($post_id) { // 获取文章标题并在文章标题前面加上作者 $title = get_the_title($post_id); $title = "一刀:" . $title; $args = [ 'ID' => $post_id, 'post_title' => $title, ]; // 更新文章 remove_action('save_post', 'wprs_update_post'); wp_update_post($args); add_action('save_post', 'wprs_update_post'); }
Das Prinzip ist sehr einfach. Bevor wir die Funktion „wp_update_post“ ausführen, deinstallieren wir zunächst die Funktion, die am Hook „save_post“ hängt und eine Endlosschleife verursacht, sodass es nicht zu einer wiederholten Ausführung der Funktion „wprs_update_post“ kommt . Nach der Aktualisierung des Artikels werden wir diesen Hook zur späteren Verwendung bereitstellen.
Wenn Sie während der WordPress-Entwicklung auf ein Endlosschleifenproblem stoßen, möchten Sie möglicherweise auf den obigen Code verweisen und ihn ändern, damit die von uns benötigten Funktionen erreicht werden können, ohne ein Endlosschleifenproblem zu verursachen.