Редирект на текущую страницу после входа в WordPress

10 дек. 2013 г., 15:00:53
Просмотры: 34K
Голосов: 3

Я хочу перенаправлять пользователей на их текущую страницу после входа на мой сайт WordPress. Я использовал следующий код, но он не работает на страницах, созданных через админ-панель.

<?php echo wp_login_url(get_permalink()); ?>
2
Комментарии

вы можете попробовать использовать http_referer, http://stackoverflow.com/questions/12001188/redirect-after-login-wordpress-urls, http://wpsnipp.com/index.php/functions-php/redirect-back-to-referring-page-after-login/

Kumar Kumar
10 дек. 2013 г. 15:12:52

Пожалуйста, следите за вопросами, которые вы задаете, это важная часть процесса на WPSE - см. Что делать, когда кто-то ответил на мой вопрос? и Почему важны голоса? для более глубокого понимания.

Nicolai Grossherr Nicolai Grossherr
8 апр. 2014 г. 16:33:23
Все ответы на вопрос 5
0

Вы можете использовать фильтр login_redirect для этого. Одним из параметров является $request, который

представляет собой URL, с которого пришел пользователь

function wpse125952_redirect_to_request( $redirect_to, $request, $user ){
    // вместо использования $redirect_to мы перенаправляем обратно на $request
    return $request;
}
add_filter('login_redirect', 'wpse125952_redirect_to_request', 10, 3);

Этот фильтр также можно легко использовать для разграничения перенаправлений в зависимости от ролей пользователей. Обратитесь к документации для более глубокого понимания этого.

10 дек. 2013 г. 15:27:50
0

Попробуйте функцию wp_redirect() http://codex.wordpress.org/Function_Reference/wp_redirect Возможно, the_permalink() поможет вам, в зависимости от того, откуда выполняется вход.

Или может быть вам нужно это?

<a href="<?php echo wp_login_url( get_permalink() ); ?>" title="Войти">Войти</a>
10 дек. 2013 г. 15:14:00
0

Что вы имеете в виду под текущей страницей пользователя?

В любом случае, вы пробовали использовать встроенную функцию wp_login_form()?

Вы можете использовать её следующим образом:

$args = array(
    'echo' => true,
    // Это может быть текущей страницей пользователя?
    'redirect' => site_url( $_SERVER['REQUEST_URI'] ),
    'form_id' => 'user-login-form',
    'label_username' => __( 'Имя пользователя' ),
    'label_password' => __( 'Пароль' ),
    'label_remember' => __( 'Запомнить меня' ),
    'label_log_in' => __( 'Войти' ),
    'id_username' => 'user_login',
    'id_password' => 'user_pass',
    'id_remember' => 'rememberme',
    'id_submit' => 'wp-submit',
    'remember' => true,
    'value_username' => NULL,
    'value_remember' => false );

wp_login_form( $args );
11 дек. 2013 г. 06:41:57
1

Добавьте следующий код в ваш файл function.php

function admin_default_page() {
  $site=get_site_url();
  $site1=$site."/* slug- название страницы */";
  return $site1;
}
add_filter('login_redirect', 'admin_default_page');
18 мая 2020 г. 11:44:42
Комментарии

Всегда добавляйте небольшое пояснение к вашему ответу — это поможет пользователям понять, в чём заключается решение, почему оно является хорошим, что делает та или иная функциональность и т.д.

Tony Djukic Tony Djukic
18 мая 2020 г. 17:23:25
0
-1

Проблема решена. Я установил плагин для WordPress, который позволяет выполнять PHP-код на страницах. Затем

<?php echo wp_login_url(get_permalink()); ?>

отлично работает на страницах WordPress. http://wordpress.org/plugins/insert-php/

11 дек. 2013 г. 06:24:45