@anriko

Почему обработчик формы отрабатывает на каждое обновление страницы в function.php?

// закрепить пост
 if (isset($_POST['sticy_post'])) {
   if( wp_verify_nonce( $_POST['sticy_post'], 'sticy_post' ) ) { 
   	$user_ID = get_current_user_id();
   $count = get_user_meta( $user_ID, 'limit_post_sticy', true )[0];
   update_user_meta($user_ID, 'limit_post_sticy', $count + 1);
//update_post_meta( $_POST['postid'], '_extra_featured_post', '0', true ); 
    }
   
}

<form method="POST" action="" class="sticy_post-form" style="display: inline-block;float: right;">
                            <input type="hidden" name="sticy_post" value="b1a2bc6f85"> 
                            <input type="hidden" name="postid" value="1538">
                            <input type="submit" value="закрепить" title="Delete">
                            </form>
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 2
@kandrash
Кратко о себе
Вордпрессом не пользуюсь, но похоже на классическое поведение любых браузеров. Вы отправляете POST запрос. Чего вы ожидаете от обновления страницы? Очевидно браузер снова шлёт POST. Чтобы избежать такого поведения можете, например, послать в ответ редирект. Типа header('Location: www.example.com');. Это чистый PHP, возможно Wordpress имеет встроенные методы для такого поведения.
Ответ написан
@anriko Автор вопроса
пробую исправить так но все равно на главной оказываюсь

global $wp;
wp_redirect(home_url(add_query_arg(array($_GET), $wp->request)))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы