J'essaie de passer un paramètre à un site WordPress en utilisant une URL - par exemple:
www.fioriapts.com/?ppc=1
Sera l'URL.
J'ai l'intention d'écrire une fonction dans le fichier functions.php mais la mécanique de la façon d'extraire un paramètre dans WordPress me dépasse. Je trouve beaucoup d'exemples sur la façon d'ajouter un paramètre vers une URL en utilisant la fonction add_query_arg()
mais je n'ai rien trouvé sur la façon d'extraire un paramètre. Merci d'avance pour toute aide.
Lorsque vous passez des paramètres via l'URL, vous pouvez récupérer les valeurs en tant que paramètres GET.
Utilisez ceci:
$variable = $_GET['param_name'];
//Or as you have it
$ppc = $_GET['ppc'];
Il est plus sûr de vérifier d'abord la variable:
if (isset($_GET['ppc'])) {
$ppc = $_GET['ppc'];
} else {
//Handle the case where there is no parameter
}
Voici un peu de lecture sur les paramètres GET/POST que vous devriez regarder: http://php.net/manual/en/reserved.variables.get.php
EDIT: Je vois que cette réponse reçoit encore beaucoup de trafic des années après l'avoir faite. Veuillez lire les commentaires joints à cette réponse, en particulier l'entrée de @emc qui détaille une fonction WordPress qui accomplit cet objectif en toute sécurité .
Pourquoi ne pas simplement utiliser la fonction WordPress get_query_var()
? Lien vers le Codex
// Test if the query exists at the URL
if ( get_query_var('ppc') ) {
// If so echo the value
echo get_query_var('ppc');
}
Étant donné que get_query_var ne peut accéder qu'aux paramètres de requête disponibles pour WP_Query, afin d'accéder à une var de requête personnalisée comme 'ppc', vous devrez également enregistrer cette variable de requête dans votre plugin ou functions.php
en ajoutant une action lors de l'initialisation:
add_action('init','add_get_val');
function add_get_val() {
global $wp;
$wp->add_query_var('ppc');
}
Ou en ajoutant un hook au filtre query_vars:
function add_query_vars_filter( $vars ){
$vars[] = "ppc";
return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );
Vous pouvez essayer cette fonction
/**
* 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 ] ) );
}
Voici ce qui se passe dans la fonction
Ici, trois choses se produisent.
Toutes ces informations et plus d'informations sur la réflexion derrière la fonction sont disponibles sur ce lien https://www.intechgrity.com/correct-way-get-url-parameter-values-wordpress/
Dans la fonction de rappel, utilisez le paramètre $ request
$parameters = $request->get_params();
echo $parameters['ppc'];