Cum să obții un parametru URL dintr-un URL folosind get_query_var?

19 mar. 2018, 10:27:28
Vizualizări: 35.8K
Voturi: 4

Încerc să obțin un parametru URL personalizat dintr-un URL în WordPress.

Am adăugat următorul cod în functions.php:

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

Apoi pe pagina web scriu:

<?php  $token = get_query_var( 'token', $default = '');  ?>
<h1>În prezent navigăm cu token-ul <?php echo (int) $token; ?> 
Pe o pagină statică</h1>

și accesez pagina web http://www.negovista.com/tokensuccess/?token=xxxxxx

Totuși pe pagină este afișat doar

'În prezent navigăm cu token-ul Pe o pagină statică' fără xxxxxx

Știe cineva dacă există vreo eroare în cod?

8
Comentarii

Nu văd nimic greșit în codul tău. Ai verificat valoarea variabilei $token?

cybmeta cybmeta
19 mar. 2018 11:10:58

În codul sursă al paginii tale, ambele declarații <?php $token = get_query_var( 'token', $default = ''); ?> și <?php echo (int) $token; ?> sunt afișate ca comentarii HTML (<!--?php $token = get_query_var( 'token', $default = ''); ?--> și <!--?php echo (int) $token; ?-->). Se pare că există o eroare de sintaxă în fișierul template PHP.

cybmeta cybmeta
19 mar. 2018 11:22:59

Salut, mulțumesc pentru răspuns! Cred că ai dreptate. Folosesc un editor front-end numit cornerstone și nu este posibil să introduc pur și simplu cod php în el. Va trebui să creez un shortcode și să îl folosesc în loc.

flemmingha flemmingha
19 mar. 2018 23:25:39

@cybmeta Poți să explici comentariul tău într-un răspuns mai detaliat? Am exact aceeași problemă. Chiar dacă copiez și lipesc exemplul din WP Codex, nu funcționează. Codul meu este `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>NOT SET</h1>");` . Codul meu întotdeauna returnează "NOT SET" iar query-ul din URL este "sometitle/?adminoption=TEST"

user658182 user658182
15 apr. 2018 18:06:49

.. de asemenea, folosind echo $_GET["adminoption"]; funcționează corect. Pot afișa orice vreau. Asta este în fișierul meu functions.php

user658182 user658182
15 apr. 2018 18:10:12

@cybmeta la mine te referi? Dacă da, atunci greșești. Am avut tag-uri php. Problema a fost că foloseam un editor front-end numit cornerstone care nu suportă php

flemmingha flemmingha
18 apr. 2018 12:16:32

Nu, îmi pare rău, către @user658182,

cybmeta cybmeta
18 apr. 2018 13:10:21

Ok, m-am confundat puțin :)

flemmingha flemmingha
18 apr. 2018 13:16:43
Arată celelalte 3 comentarii
Toate răspunsurile la întrebare 1
1

Am reușit să găsesc o soluție cu ajutorul unor dezvoltatori de pe forumul theme.co apex.

Aveam nevoie să obțin două parametri din URL-ul meu www.randompage.com/tokensuccess/?token=token&username=username numiți token și username.

Pentru a obține acestea, am adăugat următorul cod în fișierul 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');

Acest cod a introdus cele două parametri în variabilele token și username.

Apoi, am adăugat următorul cod în fișierul page.php pentru a afișa valorile și a le insera în baza de date.

<?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 
            )
        );
    }
}

?>

Acum pot trimite un link cu parametri către clientul meu și să obțin automat token-ul și numele acestuia.

16 apr. 2018 21:51:18
Comentarii

Acest lucru nu pare să funcționeze pe paginile de administrare, am plasat filtrul direct în fișierul rădăcină al plugin-ului. get_query_var returnează un șir gol.

NextGenThemes NextGenThemes
27 ian. 2021 18:21:22