必要に迫られて、つい。。
注意事項とか利用方法とか
- 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件のフィードバック