Redirecționează utilizatorii nelogati dacă sunt pe o anumită pagină
Am văzut această întrebare postată anterior, dar nu exact pentru ceea ce încerc să realizez.
În esență, ceea ce vreau este: Dacă utilizatorul nu este logat ȘI se află pe -această pagină- SAU -această pagină- SAU -această pagină, redirecționează-l către -această pagină- (care este o pagină personalizată de înregistrare)
Modific acest fragment de cod, dar nu funcționează. Apreciez orice fel de îndrumare.
<?php
function redirect_non_logged_in(){
// dacă utilizatorul nu este logat și se află pe aceste pagini
if( !is_user_logged_in() && is_page( array( 250, 253 ) ) ) {
// Aceasta redirecționează către pagina de login personalizată.
wp_redirect(site_url('/inregistrare-utilizator'));
exit();
}
}
add_filter('get_header','redirect_non_logged_in');
?>

Funcția ta este în regulă, dar 'get_header'
este prea târziu.
Folosește template_redirect
în schimb:
add_action( 'template_redirect', function() {
if ( is_user_logged_in() || ! is_page() ) return;
$restricted = array( 250, 253 ); // toate paginile tale restricționate
if ( in_array( get_queried_object_id(), $restricted ) ) {
wp_redirect( site_url( '/user-registration' ) );
exit();
}
});
Asigură-te că nu incluzi ID-ul paginii 'user-registration' în array-ul $restricted
altfel vei întâmpina o redirecționare infinită...

Scuze că întrerup, dar în loc să repet întrebarea, aș întreba aici. Folosesc acest cod ușor modificat bazat pe răspunsul tău: add_action( 'template_redirect', function() { if ( !is_page('login') || !is_user_logged_in() ) { wp_redirect( site_url( '/login', 301 ) ); exit(); }});
, totuși, tot primesc bucla de redirecționare. Poți să-mi arăți unde e problema?

Problema ta este că login nu este o pagină, așa că is_page('login')
nu poate fi niciodată adevărat. A afla dacă ești pe pagina de login nu este simplu în WordPress, vezi acest răspuns pentru a afla cum se face. @FrederickAndersen

Instalați extensia Page Restrict https://da.wordpress.org/plugins/pagerestrict/
În setări, alegeți opțiunea "login form show" ca "no"
introduceți link în mesajul de restricție: <a href="https://pagina-dvs-de-login/">Autentificare</a>
pentru a vizualiza această pagină/postare
