Identificare in remoto la versione di un'installazione WordPress?
Come fa lo strumento di DD32 a determinare la versione di WordPress di un'installazione. Non funziona correttamente per WP 3.1 ma non utilizza il tag meta generator o il readme.txt di WP. Quindi cos'altro potrebbe essere?

Questo è un pezzo di codice che ho scritto tempo fa per rilevare la versione di WP nei modi più ovvi: http://ottodestruct.com/class-wp-detection.phps
Ci sono altri metodi, più sottili e meno evidenti. Il suo metodo è il riconoscimento delle impronte digitali dei file. In pratica controlla se determinati file esistono o meno.

Sto solo supponendo, ma solitamente questo viene fatto individuando file/cartelle/codice specifici per ogni versione e a volte anche la dimensione.
Ad esempio puoi rimuovere tutti i meta tag delle versioni (non ce ne sono tipo 12?) e il file .txt per la 3.1, ma dato che la 3.1 è l'unica versione che include per impostazione predefinita il seguente nuovo file, è piuttosto facile identificarla.
wp-includes/js/l10n.js
Poiché ogni release include molte nuove aggiunte, se passi abbastanza tempo a scrivere un bot intelligente, non è molto difficile trovare dati specifici per ogni versione. Nascondere tutte queste informazioni richiederebbe molto lavoro per ogni release.

Scusa, avrei dovuto essere più chiaro. Il tag meta versione viene inserito in diversi punti, ad esempio puoi rimuoverlo dall'intestazione predefinita del tuo blog, ma appare altrove. Ecco perché usi un filtro globale "per eliminarlo" invece di commentare semplicemente l'output dell'intestazione html. Quel numero è probabilmente esagerato però. Ad esempio guarda lo script di Otto qui sotto.

So che esiste già una risposta accettata, ma volevo comunque proporre questa soluzione. Il modo in cui lo faccio io è estrarre la variabile $wp_version dal file 'wp-includes/version.php' nella directory del tuo blog:
function get_wp_version() {
$versionFile = ABS_PATH.'/wp-includes/version.php';
// FILE DI VERSIONE NON TROVATO //
if (($versionStr = @file_get_contents($versionFile))=='') return '';
$regex = "wp_version.*'(?<wpVersion>.*)'";
if (preg_match('/'.$regex.'/', $versionStr, $matches)) {
return $matches['wpVersion'];
}
return '';
}
