Korzystałem z tej strony dużo do rozwiązywania moich problemów, ale tym razem nie udało mi się znaleźć i odpowiedzieć na mój problem.
Dostaję i nieskończoną pętlę, gdy używam wp_update_post
wewnątrz wywoływanej funkcji save_post
. Wiem, że jest to powszechny problem, ale nie mogę wymyślić, jak go uniknąć.
Chcę zapisać kolejność moich postów (które należą do sekcji „post”). Stworzyłem więc niestandardowe pole meta, które zawiera pewne sortowalne elementy HTML. W każdym elemencie znajduje się ukryty znacznik wejściowy o nazwie name = 'sectionorder []'. Kiedy klikam standardowy przycisk „Aktualizacja” WordPressa, tablica zawierająca wszystkie identyfikatory postów (w kolejności) jest wysyłana przez POST. Oto kod, w którym pobieram tablicę i chcę zapisać kolejność:
// Update section sort order
$sectionorder = $_POST['sectionorder'];
if (isset($sectionorder)) { // Avoid error if there is no sections added yet
foreach( $sectionorder as $no => $sectionID ) {
$post_update = array();
$post_update['ID'] = $sectionID;
$post_update['menu_order'] = $no;
wp_update_post( $post_update );
}
}
Problem polega jednak na tym, że uruchamia nieskończoną pętlę. Jak tego uniknąć? Może mogę to zrobić w zupełnie inny sposób?
Doceń swoją pomoc!