wp_redirect non funziona quando si accede alla versione www del sito

3 ago 2011, 20:01:50
Visualizzazioni: 829
Voti: 0

La seguente funzione funziona perfettamente quando i visitatori loggati accedono a http://sitename.com, portandoli alla homepage del sito. Tuttavia, quando i visitatori loggati accedono a http://www.sitename.com, vengono reindirizzati erroneamente a http://sitename.com/splashpage. Qualcuno sa cosa causa questo problema?

Ho provato a modificare le impostazioni del mio sito per usare http://www.sitename.com come URL di WordPress e indirizzo del sito, ma questo semplicemente inverte il problema, causando un reindirizzamento errato quando un utente loggato accede a http://sitename.com.

// REINDIRIZZA GLI UTENTI ALLA PAGINA SPLASH SE NON SONO LOGGATI
add_action ('template_redirect','mkm_restrict_access',1);
function mkm_restrict_access() {
    $url = site_url('/splashpage/');
    if (is_page('splashpage') || is_page('login')) {
        //non fare nulla
    } elseif (!is_user_logged_in()) {
        wp_redirect( $url ); 
        exit; 
    }
}

Grazie per il tuo aiuto!

1
Commenti

C'è forse un'azione migliore da utilizzare per chiamare questo reindirizzamento? Qualcosa che si attivi dopo che la pagina ha reindirizzato da http://www.example.com a http://example.com ?

Michelle Michelle
4 ago 2011 19:39:17
Tutte le risposte alla domanda 1
0

Risolto, anche se questa è la soluzione più banale di sempre: ho agganciato wp_footer invece di template_redirect. Se qualcuno ha una soluzione migliore o un punto migliore dove agganciarsi, mi piacerebbe saperlo - grazie!

MODIFICA: Non era la soluzione che credevo. Alla fine ho scoperto che stavo scrivendo male la funzione e che era necessario usare template_redirect. Vedi Impossibile far funzionare il reindirizzamento

4 ago 2011 16:43:45