Wp_redirect e invio di variabili

5 ago 2013, 22:41:27
Visualizzazioni: 42.7K
Voti: 15

Come inviare alcune variabili con wp_redirect() dal file functions.php nella cartella del mio tema?

if ( $post_id ) {
    $variable_to_send = '1';
    wp_redirect( home_url() . '?status=' . $variable_to_send );
    exit;
}

E nella homepage catturerò la variabile in una condizione if-else per mostrare o meno una conferma a seconda se $variable_to_send = '1' o no.

Come farlo in WordPress?

0
Tutte le risposte alla domanda 2
1
16

Arrivo in ritardo alla festa con questo, ma il "modo Wordpress" per farlo sarebbe utilizzare add_query_arg in questo modo:

if ( $post_id ) {
    wp_redirect( esc_url( add_query_arg( 'variable_to_send', '1', home_url() ) ) );
    exit;
}

Questo inizierà un reindirizzamento a http://my.website/?variable_to_send=1. Sarai quindi in grado di catturare la variabile nella homepage (o nella pagina del blog, a seconda di come è configurato il tuo home_url()) accedendo a $_GET['variable_to_send'] nel tuo codice PHP.

Se intendi fare questo in functions.php, assicurati di agganciarti a init o a un hook altrettanto precoce, altrimenti otterrai un errore "Headers already sent".

Spero che questo aiuti qualcuno che si imbatte in questo post.

23 mar 2017 15:48:30
Commenti

Se stai reindirizzando a un indirizzo locale, dovresti usare wp_safe_redirect().

Nathan Johnson Nathan Johnson
23 mar 2017 17:17:59
3
14

Penso che tu non possa farlo in questo modo.

wp_redirect è un modo elegante per inviare l'header Location e il secondo argomento di questa funzione è lo stato della richiesta, non una variabile personalizzata. (404, 301, 302, e così via).

Puoi inviare alcune variabili come parametri get. Quindi puoi fare qualcosa del genere:

if ( $post_id ) {
        $variable_to_send = '1';
        wp_redirect( home_url() .'?my_variable='.$variable_to_send );
        exit;
}

Poi puoi usare queste variabili come $_GET['my_variable'] o registrarla come variabile get personalizzata.

5 ago 2013 22:47:29
Commenti

Potresti anche impostare un cookie, suppongo.

Ben Polinsky Ben Polinsky
5 gen 2017 21:35:49

Devi usare add_query_arg per farlo nel modo WordPress.

Shivanand Sharma Shivanand Sharma
16 gen 2019 08:16:22

@ShivanandSharma potresti, ma non c'è bisogno di usare add_query_arg per aggiungere solo un argomento all'URL senza altri query args.

Krzysiek Dróżdż Krzysiek Dróżdż
16 gen 2019 08:56:53