set_url_scheme() : La fonction de la semaine n°12

set_url_scheme() : La fonction de la semaine n°12

Schemes

Un « scheme » c’est quoi ? C’est le niveau le plus haut d’une URI, habituellement ce qui est avant le :// comme HTTP, HTTPS, MAILTO etc

Scheme C6

WordPress intègre donc une fonction nommée set_url_scheme() qui prends 2 paramètres : une URL et un scheme. Le but de cette fonction est de pouvoir modifier le scheme de l’URL passée en paramètre.
ELle comprends aussi des schemes par défaut qui sont login_post, login, rpc, admin, et relative. Pour ces 4 premiers schemes le but est de sortir HTTPS.
Exemple :

Ce code permet de passer une URL de HTTP en HTTPS si la configuration le permet.

Le dernier scheme relative est lui aussi intéressant, il permet de ne récupérer que le « reste » de l’url après suppression du NDD (et user, pass, port si ajoutés)
Exemple :

J’ai donc bien récupéré le « path » de mon URL avec les paramètres etc, puis si jamais vous n’en aviez pas besoin, j’ajoute un explode & reset (ne combinez pas les 2 sur la même ligne, PHP 5.4 n’aime pas ça …) afin de ne garder qu’un véritable chemin.

Schemes And Dreams

Là où on va encore plus loin avec ce hook c’est que le scheme peut tout aussi bien être « mon_scheme » ce qui donne une url comme mon_scheme://..., bon ok c’est nul. SAUF que je vois qu’il existe un filtre ! Utilisons le de suite :

J’espère que le combo de mettre un set_url_scheme() dans un set_url_scheme() ne vous gène pas. J’ai ici passé le scheme « boiteaweb » ainsi les URLs vont forcément pointer vers mon NDD et pas autre chose, j’ai forcé la suppression vie le scheme « relative » vu plus haut.

I Have A Scheme

Et si vous aviez à filtrer une URL, qu’auriez vous utilisé ou eu besoin ?

Vous aimez ? Partagez !


Réagir à cet article

220 caractères maximum