Próbuję użyć wp_redirect()
do przekierowania użytkownika po pomyślnym przesłaniu formularza rejestracji na stronie.
To nie działa i wyświetla następujący błąd:
Ostrzeżenie: nie można modyfikować informacji nagłówka - nagłówki już wysłane przez (wyjście rozpoczęte w /Applications/MAMP/htdocs/theme/wp-content/themes/test/header.php:10) w / Applications / MAMP / htdocs / theme / wp- zawiera / pluggable.php w linii 1178
Rozumiem, że było już wcześniej, dlatego nie działa, ale nie mam pojęcia, jak to zrobić.
Formularz rejestracyjny jest renderowany przez funkcję i jest przesyłany przez inną funkcję w mojej funkcji.php.
if ( isset( $_POST['subscribe'] ) ) {
// Submits the form and should then redirect
wp_redirect("/thank-you/");
exit;
}
Następnie obie te funkcje są używane tam, gdzie chcę wyświetlić formularz rejestracji.
Obawiam się, że nie jest to najlepsza rzecz do zrobienia. Powinienem stworzyć jakieś działanie, które to robi, ale nie mam pojęcia, jak to zaimplementować. Większość samouczków, które znalazłem, pokazują wyniki bezpośrednio na tej samej stronie i nie wymagają dodatkowego przekierowania. Być może dlatego pracują z funkcjami wewnątrz funkcji.php
źródło
Musisz użyć
wp_redirect()
wcześniej.get_header()
To nie wyświetli błędu nagłówka.źródło
źródło
is_page_template()
warunkowe przekierowanie.możesz także to zrobić
Zamiast dolnej linii
wp_redirect („$ url”);
pisać
lub
To na pewno rozwiąże twój problem.
źródło