Помогите с кодом редиректа

havenrock
На сайте с 23.10.2022
Offline
63
220

Привет. Я в кодах не силён... Нужно, чтобы неавторизированного пользователя wp сайта перенаправляло на нужную мне страницу. На html, чтобы вставить в саму страницу, с которой будет редиректить.

Похоже, что-то типа этого:

<meta http-equiv="refresh" content="0;URL=ССЫЛКА"/>

...но он всех редиректит. Как его переделать?

Знающему наверно очевидно всё, но я профан)

Профессионально просиживаю штаны.
W1
На сайте с 22.01.2021
Offline
285
#1
havenrock :

но он всех редиректит. Как его переделать?

Наверное, нужно выводить эту строку только для авторизованных пользователей.
Но я использовал бы header(), а не метатег.

Мой форум - https://webinfo.guru –Там я всегда на связи
M
На сайте с 17.06.2021
Offline
62
#2
havenrock :

Привет. Я в кодах не силён... Нужно, чтобы неавторизированного пользователя wp сайта перенаправляло на нужную мне страницу. На html, чтобы вставить в саму страницу, с которой будет редиректить.

Похоже, что-то типа этого:

...но он всех редиректит. Как его переделать?

Знающему наверно очевидно всё, но я профан)

тебе нужен php, а не теги в хедере

ChatGPT: Для реализации редиректа всех неавторизованных пользователей на определенную страницу в WordPress, можно использовать следующий код в файле functions.php вашей темы:

```php
function redirect_unauthorized_users() {
    if ( ! is_user_logged_in() && ! is_page( 'login' ) ) {
        wp_redirect( home_url( '/login' ) );
        exit;
    }
}
add_action( 'template_redirect', 'redirect_unauthorized_users' );
```

 В данном примере, все неавторизованные пользователи будут автоматически перенаправляться на страницу с URL '/login'. Вы можете изменить этот URL на любой другой, который вы хотите использовать для редиректа.


второй вариант: 

php
function redirect_non_logged_users() {
  // Проверяем, является ли пользователь авторизованным
  if ( ! is_user_logged_in() ) {
    // Получаем ссылку на страницу, на которую нужно перенаправить неавторизованных пользователей
    $redirect_url = home_url( '/your-page-slug/' );
    
    // Осуществляем редирект
    wp_redirect( $redirect_url );
    exit;
  }
}
add_action( 'template_redirect', 'redirect_non_logged_users' );
Bybit крипто биржа https://partner.bybit.com/b/58507 /// Зарубежные VPS с оплатой РФ картами https://aeza.net/?ref=416422 (+15% к пополнению)
W1
На сайте с 22.01.2021
Offline
285
#3
makepuff #:
ChatGPT: Для реализации редиректа всех неавторизованных пользователей на определенную страницу в WordPress, можно использовать следующий код в файле functions.php вашей темы:

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

M
На сайте с 17.06.2021
Offline
62
#4
webinfo #:

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

какая ахинея хахах, абсолютная классика для вп прописать код в functions.php

webinfo #:

Наверное, нужно выводить эту строку только для авторизованных пользователей.
Но я использовал бы header(), а не метатег.

я лучше бота заюзаю чем твой совет) что значит здесь header() 
подсказка очень полезная для топик автора 

W1
На сайте с 22.01.2021
Offline
285
#5
havenrock :
Знающему наверно очевидно всё

Знающему нужно знать все обстоятельства, нужна более конкретная постановка задачи. А пока это про "сферического коня в вакууме". Поэтому ничего не очевидно.

havenrock
На сайте с 23.10.2022
Offline
63
#6

webinfo #:

Знающему нужно знать все обстоятельства, нужна более конкретная постановка задачи. А пока это про "сферического коня в вакууме". Поэтому ничего не очевидно.

Есть такая вкладка. Она отправляет на страницу /profile. Авторизированные и должны на неё попадать.

У неавторизированных со страницы /profile должен проходить редирект на страницу /login.

Кнопка одна и та же, просто текст меняется в зависимости от того, авторизирован ли юзер, а вот ссылку кнопки сменить по этой логике нет возможности, потому решил через страницу /profile это сделать.

havenrock
На сайте с 23.10.2022
Offline
63
#7
webinfo #:
нужно выводить эту строку только для авторизованных пользователей

Натолкнули на мысль! Редирект, похоже, не понадобится. Спасибо.

W1
На сайте с 22.01.2021
Offline
285
#8
havenrock #:
просто текст меняется в зависимости от того, авторизирован ли юзер, а вот ссылку кнопки сменить по этой логике нет возможности, потому решил через страницу /profile это сделать

Лучше всё же ссылку менять. Ни к чему здесь заниматься редиректами, это будет неправильно. Если можно изменить текст, то ссылку изменить ещё проще.

Другое дело, что навторизованных пользователей со страницы profile в любом случае должно редиректить на страницу  login. Но это должно делаться независимо от той кнопки, и при организации личного кабинета (я так понял, именно об этом идёт речь) всё это продумывается. Поэтому довольно странно, что этот вопрос вообще возник.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий