Come ottenere un parametro URL da un URL con get_query_var?

19 mar 2018, 10:27:28
Visualizzazioni: 35.8K
Voti: 4

Sto cercando di ottenere un parametro URL personalizzato da un URL in WordPress.

Aggiungo il seguente codice al file functions.php:

function add_query_vars_filter( $vars ){
    $vars[] = "token";
    return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );

Poi nella pagina web scrivo:

<?php  $token = get_query_var( 'token', $default = '');  ?>
<h1>Attualmente navigando con token <?php echo (int) $token; ?> su una 
pagina statica</h1>

e vado alla pagina web http://www.negovista.com/tokensuccess/?token=xxxxxx

Tuttavia nella pagina viene stampato solo

'Attualmente navigando con token su una pagina statica' senza il xxxxxx

Qualcuno sa se c'è un errore nel codice?

8
Commenti

Non vedo nulla di sbagliato nel tuo codice. Hai verificato il valore della variabile $token?

cybmeta cybmeta
19 mar 2018 11:10:58

Nel codice sorgente della tua pagina, entrambe le istruzioni <?php $token = get_query_var( 'token', $default = ''); ?> e <?php echo (int) $token; ?> vengono stampate come commenti HTML (<!--?php $token = get_query_var( 'token', $default = ''); ?--> e <!--?php echo (int) $token; ?-->). Sembra esserci un errore nella sintassi all'interno del tuo file template PHP.

cybmeta cybmeta
19 mar 2018 11:22:59

Ciao, grazie per la risposta! Penso tu abbia ragione. Sto usando un editor front-end chiamato cornerstone e non è possibile inserire semplicemente codice PHP al suo interno. Dovrò creare uno shortcode e usare quello invece.

flemmingha flemmingha
19 mar 2018 23:25:39

@cybmeta Potresti spiegare il tuo commento in una risposta con più dettagli? Sto avendo esattamente lo stesso problema. Anche copiando e incollando l'esempio dal WP Codex non ottengo nulla. Il mio codice è `function rj_add_query_vars_filter( $vars ){ $vars[] = "adminoption"; return $vars; } add_filter( 'query_vars', 'rj_add_query_vars_filter' );

echo get_query_var('adminoption', "<h1>NON IMPOSTATO</h1>");` . Il mio codice restituisce sempre "NON IMPOSTATO" mentre la mia query nell'URL è "sometitle/?adminoption=TEST"

user658182 user658182
15 apr 2018 18:06:49

.. inoltre usando echo $_GET["adminoption"]; funziona bene. Riesco a stampare quello che voglio. Questo è nel mio file functions.php

user658182 user658182
15 apr 2018 18:10:12

@cybmeta ti riferisci a me? Se è così, allora è sbagliato. Avevo effettivamente i tag php. Il problema era che stavo usando un editor front-end chiamato cornerstone che non supporta php

flemmingha flemmingha
18 apr 2018 12:16:32

No, scusa, a @user658182,

cybmeta cybmeta
18 apr 2018 13:10:21

Ok, mi sono confuso un po' :)

flemmingha flemmingha
18 apr 2018 13:16:43
Mostra i restanti 3 commenti
Tutte le risposte alla domanda 1
1

Sono riuscito a trovare una soluzione con l'aiuto di alcuni sviluppatori sul forum theme.co apex.

Avevo bisogno di ottenere due query string dalla mia URL www.randompage.com/tokensuccess/?token=token&username=username chiamate token e username.

Per ottenere questo risultato, ho aggiunto il seguente codice al file functions.php:

function add_query_vars_filter( $vars ){
  $vars[] = "token";
  $vars[] = "username";
  return $vars;
}

add_filter( 'query_vars', 'add_query_vars_filter' );

get_query_var('token');
get_query_var('username');

Questo codice ha inserito le due query string nelle variabili token e username.

Successivamente ho aggiunto il seguente codice al file page.php per stampare i valori e inserirli nel database.

<?php if (is_page('tokensuccess')) { if (get_query_var('token')) print "token = $token"; }  ?>

<?php if (is_page('tokensuccess')) { if (get_query_var('username')) print "username = $username"; }  ?>

<?php if (is_page('tokensuccess')) { 
    $token = get_query_var('token');
    $username = get_query_var('username');
    if( $token && $username ){

        global $wpdb;
        $wpdb->insert( 
            'wp_token',
            array( 
                'token' => $token, 
                'username' => $username 
            )
        );
    }
}

?>

Ora posso inviare un link con query string al mio cliente e ottenere automaticamente il suo token e il nome.

16 apr 2018 21:51:18
Commenti

Questo sembra non funzionare nelle pagine di amministrazione, ho inserito il filtro direttamente nel file principale del plugin. get_query_var restituisce una stringa vuota.

NextGenThemes NextGenThemes
27 gen 2021 18:21:22