Ajouter une URL personnalisée avec paramètres dans WordPress

17 avril 2018 camillejg Laisser un commentaire

Lors de développements spécifiques, notamment pour la mise en place de pages pour les types de post personnalisés que vous allez créer, il est nécessaire d’initialiser la nouvelle URL et les nouveaux paramètres que vous souhaitez récupérer dans votre code PHP.

Il y a de multiples manières de mettre en place le rewriting sur des url personnalisées, celle-ci fonctionne très bien. La partager me permet aussi de m’en faire un mémo et ne pas avoir à rechercher dans les développements d’anciens sites Internet afin de remettre en place ce bout de code sur de nouveaux sites ;).

Pour cela, quelques lignes suffisent. A inclure dans le fichier functions.php de votre thème, ou directement dans le plugin que vous êtes en train de développer.

/* Initialisation de la variable que je souhaites récupérer */
function wpd_add_query_vars( $qvars ) {
    $qvars[] = 'mavariable';
    return $qvars;
}
add_filter( 'query_vars', 'wpd_add_query_vars' );

/* Initialisation du rewriting de l'URL */
function wpd_page_rewrite(){
    add_rewrite_rule( '^mapage/([^/]*)?', 'index.php?pagename=mapage&mavariable=$matches[1]', 'top' );
}
add_action( 'init', 'wpd_page_rewrite' );

Une fois le code en place dans mon functions.php, rendez-vous sur les réglages, puis Permaliens, et cliquez sur « Enregistrer les modifications » afin que votre bout de code soit bien pris en compte.

Enfin, pour récupérer la valeur de votre variable « mavariable », utilisez la fonction get_query_var :

$variable = get_query_var('mavariable');

Articles associés