Skip to content

Instantly share code, notes, and snippets.

@jevgen
Forked from florianbrinkmann/utf8-to-utf8mb4.php
Created March 15, 2023 10:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jevgen/ce426c89195e0b8460b4f5aae928b77f to your computer and use it in GitHub Desktop.
Save jevgen/ce426c89195e0b8460b4f5aae928b77f to your computer and use it in GitHub Desktop.
<?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' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment