web-dev-qa-db-fra.com

Mettre à jour vers une version plus ancienne de wordpress à partir de l'administrateur?

J'ai une configuration Wordpress 2.7.x que je voudrais migrer vers la dernière version 3.2.1, cependant, je dois effectuer une mise à niveau progressive, car certains plug-ins nécessitent une version antérieure (3.0.6 IIRC).

Cependant, Wordpress ne me propose que la version la plus récente et la plus performante à mettre à niveau. Existe-t-il un moyen - de préférence au sein de l’administrateur - de mettre à jour le noyau vers une version spécifique? Ou suis-je lié aux mises à niveau manuelles?

Existe-t-il probablement un moyen de dire à la centrale de traitement de wordpress quelle version choisir? Il téléchargeait un Zip que récemment, non?

7
hakre

Vous pouvez vous connecter à option_update_core et éditer l'URL de la mise à jour. En tant que plug-in, vous pouvez faire quelque chose comme ceci (n'oubliez pas de désactiver le plug-in après la mise à jour de wordpress)

add_filter('option_update_core','wpse_26750');
add_filter('transient_update_core','wpse_26750');
function wpse_26750($options){
    global $wp_version;
    $updates=array(
        '2.5'=>'http://wordpress.org/wordpress-2.5.Zip',
        '2.7.1'=>'http://wordpress.org/wordpress-2.7.1.Zip',
        '2.8'=>'http://wordpress.org/wordpress-2.8.Zip',
        '2.8.1'=>'http://wordpress.org/wordpress-2.8.1.Zip',
        '2.8.3'=>'http://wordpress.org/wordpress-2.8.3.Zip',
    );

    $currentUpdate=$options->updates[0];
    //Add Previous updates skipping the ones already passed
    foreach($updates as $version=>$updateUrl){
        if( version_compare($wp_version,$version) < 0){
            $update=new StdClass();
            $update->response='upgrade';
            $update->url='http://wordpress.org/download/';
            $update->package=$updateUrl;
            $update->current=$version;
            $update->locale=$options->updates[0]->locale;
            $options->updates[]=$update;
        }
    }
    unset($options->updates[0]);
    //Restore latest update
    $options->updates[]=$currentUpdate;
    return $options;
}

À partir de la version 2.8, vous devez également vous accrocher à transient_update_core car get_transient est utilisé à la place de get_option De plus, il y a vérification de version ici, donc aucune version inférieure à celle-ci n'est affichée. Le seul problème (¿majeur?) Est que la liste des versions doit être ajoutée manuellement.

5
hacksy

La solution de Hansy ne fonctionnait pas pour moi car j'utilisais WP 3.5. Je voulais mettre à jour vers WP 3.7.8. J'ai basé ma solution sur celle de Hansy avec quelques modifications.

add_filter('pre_site_option_update_core','wpse_26750' );
add_filter('site_transient_update_core','wpse_26750' );
function wpse_26750($updates){
    global $wp_version;
    // If current version is 3.7.8 or higher then stop
    if ( version_compare( $wp_version, '3.7.8' ) >= 0 ) {
        return $updates;
    }
    $updates->updates[0]->download = 'https://downloads.wordpress.org/release/wordpress-3.7.8.Zip';
    $updates->updates[0]->packages->full = 'https://downloads.wordpress.org/release/wordpress-3.7.8.Zip';
    $updates->updates[0]->packages->no_content = 'https://downloads.wordpress.org/release/wordpress-3.7.8-no-content.Zip';
    $updates->updates[0]->packages->new_bundled = 'https://downloads.wordpress.org/release/wordpress-3.7.8-new-bundled.Zip';
    $updates->updates[0]->current = '3.7.8';

    return $updates;
}
0
grappler

Je ne suis pas sûr de pouvoir le faire via admin mais ce serait facile à accomplir avec svn.

Faites une copie ou déplacez wp-content et wp-config.php dans un répertoire temporaire, supprimez tous les fichiers WordPress et extrayez la branche 2.8, déplacez wp-content et config, puis exécutez le script de mise à jour.

mv wordpress/wp-content /tmp/wp-content
mv wordpress/wp-config.php /tmp/wp-config.php
rm -rf wordpress
mkdir wordpress
cd wordpress
svn co http://core.svn.wordpress.org/tags/2.7.x/ .
mv /tmp/wp-content/* wordpress/wp-content/
mv /tmp/wp-config.php wordpress/wp-config.php

//Run upgrade script:  http://yoursite/wordpress/wp-admin/upgrade.php

//Check out the next version
cd wordpress
svn sw http://core.svn.wordpress.org/tags/2.8.x .

//Run upgrade script

//Rinse and repeat
0
Chris_O