Identificare de la distanță a versiunii unei instalări WordPress?
Cum determină unealta DD32 versiunea WordPress a unei instalări. Nu funcționează corect pentru WP 3.1 dar nu utilizează nici tag-ul meta generator și nici readme.txt al WP. Deci ce altceva ar putea fi?

Acesta este un cod pe care l-am scris acum ceva timp pentru a detecta versiunea WordPress în cele mai evidente moduri: http://ottodestruct.com/class-wp-detection.phps
Există și alte metode, mai subtile și mai puțin evidente. Metoda lui constă în amprentarea fișierelor. Practic, verifică dacă anumite fișiere există sau nu.

Presupun doar, dar acest lucru se face de obicei prin identificarea unor fișiere/directoare/cod specifice versiunii și uneori chiar prin dimensiune.
De exemplu, poți elimina toate tag-urile meta de versiune (nu sunt cam 12 locuri?) și fișierul .txt pentru 3.1, dar din moment ce 3.1 este singura versiune care include în mod implicit următorul fișier nou, este destul de ușor de identificat.
wp-includes/js/l10n.js
Deoarece fiecare versiune are multe adăugiri noi, dacă petreci suficient timp scriind un bot inteligent, nu este foarte greu să găsești date specifice versiunii. Ascunderea tuturor acestor informații ar fi multă muncă pentru fiecare lansare.

Îmi pare rău, ar fi trebuit să fiu mai clar. Tag-ul meta de versiune este inserat în mai multe locuri, de exemplu îl puteți elimina din antetul implicit al blogului, dar apare în alte părți. De aceea folosiți un filtru global pentru a "scăpa de el" în loc să comentați pur și simplu afișarea antetului html. Totuși, acel număr este probabil exagerat. De exemplu, uitați-vă la scriptul lui Otto mai jos.

Știu că deja există un răspuns acceptat, dar doar arunc și eu ideea asta. Modul în care o fac eu este să extrag variabila $wp_version din fișierul 'wp-includes/version.php' din directorul blogului tău:
function get_wp_version() {
$versionFile = ABS_PATH.'/wp-includes/version.php';
// FIȘIER VERSIUNE INEXISTENT //
if (($versionStr = @file_get_contents($versionFile))=='') return '';
$regex = "wp_version.*'(?<wpVersion>.*)'";
if (preg_match('/'.$regex.'/', $versionStr, $matches)) {
return $matches['wpVersion'];
}
return '';
}
