Il est prudent de cacher le numéro de version de WordPress afin que les hackers ne détectent pas facilement les retards de mises à jour...
▼Publicité Le texte se poursuit plus bas
Par défaut, le numéro de version de WordPress apparaît dans le code HTML à différents endroits.
D'abord, dans une balise très explicite.
<meta name="generator" content="WordPress 4.6.1" />
Ensuite, à la fin de différents noms de fichier .css et .js afin de mieux contrôler la mise en cache de ces fichiers.
<link rel='stylesheet' href='http://mondomaine.com/wp-content/themes/twentyfourteen/style.css?ver=4.6.1' ... />
...
<script src='http://mondomaine.com/wp-includes/js/admin-bar.min.js?ver=4.6.1'></script>
Il est possible d'enlever toute trace de la version de WordPress en ajoutant le code suivant dans le fichier functions.php de votre thème enfant.
Ce code enlèvera complètement la balise <meta name="generator">. De plus, dans les autres lignes, il remplacera le numéro de version de WordPress par le numéro de version inscrit dans l'entête du fichier style.css de votre thème enfant.
Je vous conseille d'utiliser un numéro de version qui ne donne aucune informations sur le temps qui s'est écoulé depuis la dernière modification (éviter les dates). Essayez également de ne pas utiliser un numéro de version qui pourrait être confondu avec celui de WordPress. Pour ma part, j'utilise une chaîne aléatoire (ex : fjdsk6).
À chaque fois que vous changerez ce numéro de version dans l'en-tête de votre feuille de style, les navigateurs seront forcés de relire les informations sur le serveur. Tout ceci sans exposer le numéro de version de WordPress. On aura donc le meilleur des deux mondes.
Si vous choisissez d'utiliser une chaîne aléatoire comme numéro de version, il vous suffira d'incrémenter les dernier caractère à chaque mise à jour (ex : fjdsk7).
Dans le nom des fonctions, je vous conseille de changer « monprefixe » par le nom de votre thème enfant.
/**
* Fonction de rappel du hook after_setup_theme, exécutée après que le thème ait été initialisé.
* @author Christiane Lagacé <christiane.lagace@hotmail.com>
*
* Utilisation : add_action( 'after_setup_theme', 'monprefixe_apres_initialisation_theme' );
*/
function monprefixe_apres_initialisation_theme() {
// Retirer la balise <meta name="generator">
remove_action( 'wp_head', 'wp_generator' );
}
add_action( 'after_setup_theme', 'monprefixe_apres_initialisation_theme' );
/**
* Change l'attribut ?ver des .css et des .js pour utiliser celui de la version de style.css.
* @author Christiane Lagacé <christiane.lagace@hotmail.com>
*
* Utilisation : add_filter( 'style_loader_src', 'monprefixe_attribut_version_style', 9999 );
* add_filter( 'script_loader_src', 'monprefixe_attribut_version_style', 9999 );
* Suppositions critiques : dans l'entête du fichier style.css du thème enfant, le numéro de version
* à utiliser est inscrit à la ligne Version (ex : Version: ...)
*
* @return String Url de la ressource, se terminant par ?ver= suivi du numéro de version lu dans style.css
*
*/
function monprefixe_attribut_version_style( $src ) {
$version = monprefixe_version_style();
if ( strpos( $src, 'ver=' . get_bloginfo( 'version' ) ) ) {
$src = remove_query_arg( 'ver', $src );
$src = add_query_arg( 'ver', $version, $src );
}
return $src;
}
add_filter( 'style_loader_src', 'monprefixe_attribut_version_style', 9999 );
add_filter( 'script_loader_src', 'monprefixe_attribut_version_style', 9999 );
/**
* Retrouve le numéro de version de la feuille de style.
* @author Christiane Lagacé <christiane.lagace@hotmail.com>
*
* Utilisation : $version = monprefixe_version_style();
* Suppositions critiques : dans l'entête du fichier style.css du thème enfant, le numéro de version
* à utiliser est inscrit à la ligne Version (ex : Version: ...)
*
* @return String Le numéro de version lu dans style.css ou, s'il est absent, le numéro 1.0
*
*/
function monprefixe_version_style() {
$default_headers = array( 'Version' => 'Version' );
$fichier = get_stylesheet_directory() . '/style.css';
$data = get_file_data( $fichier, $default_headers );
if ( empty( $data['Version'] ) ) {
return "1.0";
} else {
return $data['Version'];
}
}
Une fois ce code en place, si votre thème enfant contient la ligne suivante dans l'entête de son fichier style.css :
Theme Name: MonThemeEnfant
...
Version: fjdsk6
Les lignes contenant auparavant la version de WordPress contiendront désormais la version du fichier style.css.
<link rel='stylesheet' href='http://mondomaine.com/wp-content/themes/twentyfourteen/style.css?ver=fjdsk6' ... />
...
<script src='http://mondomaine.com/wp-includes/js/admin-bar.min.js?ver=fjdsk6'></script>
Attention : le fichier readme.html présent à la racine du dossier wordpress peut donner des indices sur le numéro de version de WordPress. Ce fichier n'a aucune utilité pour un site WordPress et ne devrait en aucun cas être copié sur le serveur.
Site fièrement hébergé chez A2 Hosting.