Не получается 🙁 мои знания в WordPress печальны походу...
Я смог сделать через этот фильтр перенаправление на нужную страницу, но... Но что получается, где бы ты не был, где бы ты не оставил коммент, я попадаю на эту страницу. и страница обновляется с нуля. То есть, написал коммент под определенным постом. Тут же получается страница перезагружается, и ты оказываешься в начале страницы ...
Получилось!
add_filter( 'comment_post_redirect', 'post_redirect', 10, 2 ); function post_redirect( $location, $comment ){ // filter... $comment = isset($_SERVER['HTTP_REFERER'])? $_SERVER['HTTP_REFERER']:'redirect-form.html'; header("Location: $comment"); exit(); return $comment; }
Но! Страница перезагружается, и я попадаю в самое её начало... а как сделать чтобы остаться на месте, где я писал комент
DJBANDERAS сказал(а)
Получилось!
фильтр используется неверно, хотя код и рабочий. В данном фильтре надо возвращать урл:
add_filter( 'comment_post_redirect', 'post_redirect', 10, 2 ); function post_redirect( $location, $comment ){ return isset($_SERVER['HTTP_REFERER'])? $_SERVER['HTTP_REFERER']:'redirect-form.html'; }
DJBANDERAS сказал(а)
как сделать чтобы остаться на месте
можно указать якорь, к которому страница будет прокручиваться, но блок комментария должен иметь идентификатор на который и будет ссылаться якорь.
Допустим, идентификатор блока комментария - comment-100
, где 100 - идентификатор комментария в БД, то код должен быть:
function post_redirect( $location, $comment ){ return isset($_SERVER['HTTP_REFERER'])? $_SERVER['HTTP_REFERER'].'#comment-'.$comment->comment_ID:'redirect-form.html'; }
можно указать якорь, к которому страница будет прокручиваться, но блок комментария должен иметь идентификатор на который и будет ссылаться якорь.
Допустим, идентификатор блока комментария - comment-100, где 100 - идентификатор комментария в БД, то код должен быть:
Спасибо огромное! Оказывается ajax это обычный js. Теперь комментарии отправляются на месте, ну как в чате дополнении wp recall. Никаких перезагрузок страниц =)
Всем спасибо! Тему можно закрывать!