Wordpress 2.7.xの設定で最新のバージョン3.2.1に移行したいのですが、一部のプラグインには以前のバージョン(3.0.6 IIRC)が必要なため、段階的アップグレードを行う必要があります。
しかし、Wordpressは私にアップグレードするための最新かつ最高のバージョンを提供しているだけです。コアを特定のバージョンにアップデートする方法はありますか - 優先的には管理者の中にありますか?それとも私は手動でアップグレードする必要がありますか?
どのバージョンを選択するかをWordPressコアアップグレードプログラムに指示する方法はおそらくありますか?つい最近Zipをダウンロードしていましたね。
あなたはoption_update_core
をフックしてアップデートURLを編集することができます、プラグインとしてあなたはこのような何かをすることができます(ワードプレスをアップデートした後にプラグインを無効にすることを忘れないでください)
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
をフックする必要があります。また、ここではバージョンチェックが行われるため、それより下位のバージョンは表示されません。唯一の(メジャー?)問題は、バージョンのリストを手動で追加する必要があるということです。
私はWP 3.5を使っていたので、Hansyの解決策は私にはうまくいきませんでした。 WP 3.7.8に更新したいです。私はいくつかの変更を加えてHansyのソリューションをベースにしました。
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;
}
私は管理者を通してそれを行う方法がわからないが、それはSVNで達成するのは簡単だろう。
コピーを作成するか、wp-contentとwp-config.phpを一時ディレクトリに移動してから、すべてのWordPressファイルを削除して2.8ブランチをチェックアウトし、wp-contentとconfigを元に戻してから更新スクリプトを実行します。
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