[2015.9.16追記]
久しぶりにこのスクリプトを使う事案が起きたので、最新のデフォルトテーマ(Twenty Fifteen)で試したところうまくいきました。
[2012.10.22追記]
WordPressの関数 update_option() を使う、よりすっきりしたコードを追記しました。
[2012.10.29追記]
「WordPressアドレス(URL)」と 「サイトアドレス (URL)」をデフォルトに戻す方法もまとめました。
テーマをいろいろ切り替えて遊んでいるうち、うっかりバギーなテーマを掴んでどうにもならなくなったときにデフォルト(記事執筆時点では『Twenty Eleven』)に戻すスクリプトを紹介します。当初は、データベースを直接操作する方法を載せようと思ったのですが、汎用性を高めるためにPHPスクリプトにしてしまいました。
以下のスクリプトを reset.php の名前で保存して(もちろん文字コードはUTF-8ね)インストールディレクトリ(wp-config.php と同じ階層)にアップロードしましょう。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>テーマをデフォルトに戻すよ</title> </head> <body> <p> <?php $dir = dirname( __FILE__ ) . '/'; if ( file_exists( $dir . 'wp-config.php' ) ) { require_once( $dir . 'wp-config.php' ); } else { die( '同じディレクトリに wp-config.php が存在しません。' ); } $connect = mysql_connect( DB_HOST, DB_USER, DB_PASSWORD ); mysql_select_db( DB_NAME, $connect ); mysql_query( 'UPDATE `' . $table_prefix . 'options` SET `option_value` = "Twenty Eleven" WHERE `option_name` = "current_theme"', $connect ); mysql_query( 'UPDATE `' . $table_prefix . 'options` SET `option_value` = "twentyeleven" WHERE `option_name` = "template"', $connect ); mysql_query( 'UPDATE `' . $table_prefix . 'options` SET `option_value` = "twentyeleven" WHERE `option_name` = "stylesheet"', $connect ); mysql_close( $connect ); echo 'テーマをデフォルトに戻しました。'; ?> </p> </body> </html>
アップの後 WordPressアドレス/reset.php にアクセスして「テーマをデフォルトに戻しました。」のメッセージが出ればオッケイです 🙂
[2012.10.22追記]
PHPの mysql_connect() でなくWordPressの update_option() 関数を使うとコードがよりすっきり(することが今さらながらわかりました)。wp-content/themes/foo 内のテンプレートファイルでなくてもあらかじめ wp-load.php を読み込むことでWordPressの関数を使えますよ。
……ということですっきり版のコード。
({default theme name} はデフォルトテーマ名〔例:Twenty Eleven〕 {default theme directory name} はデフォルトテーマのディレクトリ名〔例:twentyeleven〕に読み替えてください)
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>テーマをデフォルトに戻すよ</title> </head> <body> <p> <?php $dir = dirname( __FILE__ ) . '/'; if ( file_exists( $dir . 'wp-load.php' ) ) { require_once( $dir . 'wp-load.php' ); } else { die( '同じディレクトリに wp-load.php が存在しません。' ); } update_option( 'current_theme', '{default theme name}' ); update_option( 'template', '{default theme directory name}' ); update_option( 'stylesheet', '{default theme directory name}' ); echo 'テーマをデフォルトに戻しました。'; ?> </p> </body> </html>
コメントを残す