Я знаю, как направлять выведенного пользователя на определенную страницу или URL-адрес, например:
<a href="<?php echo wp_logout_url( home_url() ); ?>">Log out</a>
Но если я хочу, чтобы пользователь перенаправлял URL-адрес, где он или она был , что я могу сделать?
Хотя я не осведомлен о wp_get_referer()
, но я пробовал:
<?php $redirect_to = wp_get_referer() ? wp_get_referer() : home_url(); ?> <a href="<?php echo wp_logout_url( $redirect_to ); ?>">Log out</a>
а также
<?php $redirect_to = $_SERVER['HTTP_REFERER'] ? $_SERVER['HTTP_REFERER'] : home_url(); ?> <a href="<?php echo wp_logout_url( $redirect_to ); ?>">Log out</a>
без везения. 🙁
Это всегда приводит меня к home_url()
.
Вы получаете текущий путь с помощью remove_query_arg( '' )
. Объедините его с site_url()
, и у вас есть полный URI текущего запроса:
$url = untrailingslashit( site_url() ); $url .= remove_query_arg( '' );
Имейте в remove_query_arg()
что remove_query_arg()
не возвращает сантинизированное значение, поэтому вам нужно использовать esc_url()
если вы хотите распечатать его на странице. В противном случае кто-то может ввести вредоносный код на ваш сайт в параметре URL.
wp_get_referer()
предназначен для представления форм, он ищет параметр запроса _wp_http_referer
и не имеет отношения к вашему делу.