WordPress redirecționează către pagina de destinație dacă utilizatorul nu este autentificat

27 iun. 2012, 03:40:14
Vizualizări: 16.7K
Voturi: 3

Folosesc următorul cod în fișierul meu functions.php pentru a redirecționa utilizatorii care nu sunt autentificați către o anumită pagină de destinație:

    <?php
if(!is_user_logged_in()) {
    wp_redirect( 'http://www.mysite.com/landingpage', 301 ); exit;
}

Problema este că nu mai pot accesa wp-login sau wp-admin. Orice URL redirecționează către landingpage. Există vreo modalitate prin care să pot exclude anumite URL-uri de la redirecționare?

php
0
Toate răspunsurile la întrebare 2
6

ceva de genul:

if (
  !in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php'))
  && !is_admin()
  && !is_user_logged_in()
) {
  wp_redirect('http://www.mysite.com/landingpage', 301);
  exit;
}

ar trebui să funcționeze.

vezi http://codex.wordpress.org/Function_Reference/is_admin și Verifică dacă pagina curentă este wp-login

27 iun. 2012 03:45:57
Comentarii

Mulțumesc pentru răspuns. Se pare că asta ar funcționa, dar primesc o eroare de sintaxă la linia 5. Ai vreo idee?

User User
27 iun. 2012 03:57:09

da, scuze. am uitat parantezele.

User User
27 iun. 2012 03:57:37

ce paranteze?

User User
27 iun. 2012 04:07:05

am editat deja răspunsul. cele din spatele is_user_logged_in lipseau inițial... asta era?

User User
27 iun. 2012 04:09:59

Nu, încă primesc eroarea la linia 5

User User
27 iun. 2012 04:11:57

linia 2 lipsea și ea o paranteză la sfârșit.... (editat)

User User
27 iun. 2012 04:14:54
Arată celelalte 1 comentarii
1
<?php
if($_SERVER['REQUEST_URI'] != '.../' || $_SERVER['REQUEST_URI'] != '.../'){

   if(!is_user_logged_in()) {
       wp_redirect( 'http://www.mysite.com/landingpage', 301 ); exit;
   }
}

Acest cod verifică dacă te afli pe o anumită pagină, înainte de a executa redirecționarea. Dacă prima condiție este adevărată și utilizatorul nu este autentificat, va fi redirecționat.

27 iun. 2012 03:45:37
Comentarii

dacă am folosit această condiție, atunci am primit mesajul "Warning: Cannot modify header information".

Husain Ahmed Husain Ahmed
17 sept. 2016 16:56:24