Mettre à jour .htaccess à partir d’un plugin WordPress

Parfois, au cours du développement d’un plugin, il peut être nécessaire de mettre à jour le fichier .htaccess. Cela peut être assez décourageant lorsque vous commencez à penser à l’inconnu. Qu’y a-t-il actuellement ? Le fichier existe-t-il ? Puis-je y écrire ? Heureusement, WordPress dispose d’une fonction intégrée pour vous aider dans cette tâche, « insert_with_markers() » dans misc.php.

La fonction s’appuie sur des marqueurs dans le fichier .htaccess pour identifier la partie qu’elle doit mettre à jour. Par exemple, les mises à jour de WordPress pour les permaliens ont « WordPress » comme marqueur et ressemblent à quelque chose comme ça :

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

L’ajout de votre propre section est facile. La fonction prend trois paramètres :

$filename – Dans ce cas, le chemin complet du fichier .htaccess.
$marker – Un marqueur unique qui a un sens pour votre plugin.
$insertion – Un tableau dont chaque élément est une ligne de texte.
Voici un exemple :

// Get path to main .htaccess for WordPress
$htaccess = get_home_path() . ".htaccess";
 
$lines = [];
$lines[] = "RewriteBase /exemple";
 
insert_with_markers($htaccess, "MonPlugin", $lines);

Cela créerait un ajout au fichier .htaccess qui ressemblerait à ceci :

# BEGIN MonPlugin
RewriteBase /exemple
# END MonPlugin

Un point important à mentionner est que get_home_path() et insert_with_markers() ne sont disponibles que lorsque le plugin est exécuté dans l’interface d’administration. Par exemple, votre fonction d’activation pour votre plugin serait un bon endroit pour mettre cela. Pendant la désactivation, l’envoi d’un tableau vide pour le paramètre d’insertion supprimera la configuration.

About the author

Jihad Sinnaour

Développeur WEB, ingénieur informatique, Passionné de la rétro-ingénierie informatique depuis l'enfance, J'aime beaucoup partager ma passion et mes capacités, et pour cela j'ai fait mon propre blog. Je suis polyvalent ! Donc je peux répondre a peu près sur tout ce qui concerne l'informatique (J'aime pas faire le génie !) : Du langage machine jusqu'au WordPress et Symfony - Du Low-level jusqu'au High-level, N'hésitez pas a me demander ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *