Обновить до старой версии Wordpress от администратора?

У меня есть установка Wordpress 2.7.x, которую я хотел бы перенести на последнюю версию 3.2.1, однако мне нужно сделать ступенчатое обновление, так как некоторым плагинам нужна более старая версия (3.0.6 IIRC).

Однако Wordpress предлагает мне самую последнюю и самую лучшую версию для обновления. Есть ли способ - предпочтительно в пределах администратора - обновить ядро ​​до определенной версии? Или я привязан к ручным обновлениям?

Возможно, есть способ сообщить wordpress core upgraderader, какую версию выбрать? Это была загрузка zip только недавно, не так ли?

7 голосов | спросил hakre 24 PM00000030000004031 2011, 15:52:40

3 ответа


5

Вы можете подключиться к option_update_core и отредактировать URL-адрес обновления, в качестве плагина вы можете сделать что-то вроде этого (помните, чтобы отключить плагин после обновления 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;
}

Начиная с 2.8 вам также нужно подключиться к transient_update_core как get_transient используется вместо get_option Кроме того, здесь проверяется проверка версий, поэтому не отображаются версии ниже, чем они сами. Единственная проблема (¿major?) Заключается в том, что список версий должен быть добавлен вручную.

ответил hacksy 25 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 25 Sep 2011 05:04:28 +0400 2011, 05:04:28
0

Я не уверен, как это сделать с помощью администратора, но с svn было бы легко выполнить.

Сделайте копию или переместите wp-контент и wp-config.php в каталог temp, затем удалите все файлы WordPress и проверьте ветвь 2.8, переместите wp-контент и конфигурацию обратно, затем запустите сценарий обновления.

   
 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
ответил Chris_O 24 PM00000090000003331 2011, 21:48:33
0

Решение Hansy не работало для меня, поскольку я использовал WP 3.5. Я хотел обновить до WP 3.7.8. Я основывал свое решение на Hansy's с небольшими изменениями.

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;
}
ответил grappler 12 J0000006Europe/Moscow 2015, 10:59:07

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132