2012-11-30 13 views
8

Sto cercando di passare un parametro a un sito WordPress utilizzando un URL - per esempio:Estrazione un parametro da un URL in WordPress

www.fioriapts.com/?ppc=1 sarà l'URL.

Ho intenzione di scrivere una funzione nel file functions.php ma la meccanica di come estrarre un parametro in WordPress è oltre me. Sto trovando molti esempi su come aggiungere un parametro a un URL utilizzando la funzione add_query_arg() ma non ho trovato nulla su come estrarre un parametro. Grazie in anticipo per qualsiasi aiuto.

risposta

19

Quando si passano i parametri tramite l'URL, è possibile recuperare i valori come parametri GET.

Utilizzare questa:

$variable = $_GET['param_name']; 

//Or as you have it 
$ppc = $_GET['ppc']; 

È più sicuro per controllare per la prima variabile però:

if (isset($_GET['ppc'])) { 
    $ppc = $_GET['ppc']; 
} else { 
    //Handle the case where there is no parameter 
} 

Ecco un po 'di lettura su GET/POST params si dovrebbe guardare: http://php.net/manual/en/reserved.variables.get.php

+0

enorme grazie - questo è un momento duh per me - così è fatto esattamente come si è fatto in HTML standard/php - Wordpress ha così tante funzioni personalizzate ho pensato che sarebbe stato diverso ... – Redxar

+1

Grazie - Conosco il POST - ma il problema in questo caso è che non proviene da un post - quello che vogliono fare è mettere i collegamenti url su altri siti usando il parametro ppc per identificare il sito su cui si trova il link - e avere il contenuto varia a seconda del valore del parametro ppc nell'url - $ _GET sembra non funzionare - dal momento che non proviene da un post che sto pensando. C'è un altro modo per ottenere il parametro dall'URL? – Redxar

+0

O è ciò che stanno chiedendo impossibile? – Redxar

0

Puoi provare questa funzione

/** 
* Gets the request parameter. 
* 
* @param  string $key  The query parameter 
* @param  string $default The default value to return if not found 
* 
* @return  string The request parameter. 
*/ 

function get_request_parameter($key, $default = '') { 
    // If not request set 
    if (! isset($_REQUEST[ $key ]) || empty($_REQUEST[ $key ])) { 
     return $default; 
    } 

    // Set so process it 
    return strip_tags((string) wp_unslash($_REQUEST[ $key ])); 
} 

Ecco cosa sta succedendo nella funzione

Qui stanno accadendo tre cose.

  • Prima controlliamo se la chiave di richiesta è presente o meno. In caso contrario, restituire un valore predefinito.
  • Se è impostato, rimuoveremo le barre facendo wp_unslash. Leggi qui perché è meglio di stripslashes_deep.
  • Quindi disinfettiamo il valore eseguendo un semplice strip_tags. Se si prevede il rich text dal parametro, eseguirlo tramite wp_kses o funzioni simili.

Tutte queste informazioni e molto di più informazioni sul pensiero dietro la funzione si possono trovare su questo link https://www.intechgrity.com/correct-way-get-url-parameter-values-wordpress/

0

Perché non basta usare la funzione di WordPress get_query_var()? Link to Codex

// Test if the query exists at the URL 
if (get_query_var('ppc')) { 

    // If so echo the value 
    echo get_query_var('ppc'); 

} 

Sarà inoltre necessario registrare questa variabile di query all'interno del vostro plugin o functions.php.

add_action('init','add_get_val'); 
function add_get_val() { 
    global $wp; 
    $wp->add_query_var('ppc'); 
} 
Problemi correlati