必要に迫られて、つい。。
注意事項とか利用方法とか
- wp-load.php へのパスは、環境によって合わせてください。
- $update_options の配列に、オプション名をキーに、設定したい内容を値として記述してください。
- 値をnull で指定すると、設定を削除できます。
- 元に戻すことはできませんので、実行前にoptionsテーブルのバックアップをとってからにしましょう。
<?php
$update_options = array(
'option_name_1' => 'option_value 1',
'option_name_2' => 'option_value 2',
'option_name_3' => 'option_value 3',
'delete_option_name_1' => null,
'delete_option_name_2' => null,
);
require_once( 'path-to-wp-root/wp-load.php' );
$blogs = $wpdb->get_col( $wpdb->prepare( "SELECT blog_id FROM $wpdb->blogs WHERE site_id = %d ORDER BY registered DESC", $wpdb->siteid ) );
if ( $blogs ) {
foreach ( $blogs as $blog ) {
switch_to_blog( $blog );
echo "\n" . get_bloginfo( 'name' ) . "\n";
foreach( $update_options as $option_name => $option_value ) {
if ( is_null( $option_value ) ) {
$ret = delete_option( $option_name );
if ( ! $ret ) {
echo $option_name . " が削除されませんでした。\n";
}
} else {
$option_value = maybe_unserialize( $option_value );
$ret = update_option( $option_name, $option_value );
if ( ! $ret ) {
echo $option_name . " が更新されませんでした。\n";
}
}
}
restore_current_blog();
}
}
「マルチサイトの設定を一括で変更するスクリプト」への2件のフィードバック