Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
<?php
/*
Plugin Name: UTF8mb4-convert
Version: 1.0
*/
function update_db_to_utf8mb4() {
if ( ! isset( $_GET['update-utf8bm4'] ) ) {
return;
}
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
/** WordPress Administration API */
require_once( ABSPATH . 'wp-admin/includes/admin.php' );
/** WordPress Schema API */
require_once( ABSPATH . 'wp-admin/includes/schema.php' );
global $wpdb;
if ( is_multisite() ) {
$tables = $wpdb->tables( 'blog' );
} else {
$tables = $wpdb->tables( 'all' );
if ( ! wp_should_upgrade_global_tables() ) {
$global_tables = $wpdb->tables( 'global' );
$tables = array_diff_assoc( $tables, $global_tables );
}
}
foreach ( $tables as $table ) {
maybe_convert_table_to_utf8mb4( $table );
}
}
add_action( 'wp_loaded', 'update_db_to_utf8mb4' );
@chrisdavidmiles

This comment has been minimized.

Copy link

chrisdavidmiles commented Jul 14, 2018

Is the get parameter a typo on line 8? It's written as bm4 instead of mb4 (multi-byte 4). I suppose it doesn't matter as long as you use the same query string when calling the function on your site, but I think this is a typo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.