A solution made by AI for Opera Mobile:
add this to functions.php
/**
-
Combined solution to force the Visual Editor in Opera Mobile
*/
function ultimate_opera_mobile_gutenberg_fix() {
$user_agent = $_SERVER['HTTP_USER_AGENT'] ?? '';// Check based on the specific User Agent provided
if ( strpos($user_agent, 'OPR/') !== false && strpos($user_agent, 'Mobile') !== false ) {// 1. Server-side settings (PHP) $user_id = get_current_user_id(); if ( $user_id ) { // Force the "Visual Editor" setting in user profile update_user_meta( $user_id, 'wp_rich_editing', 'true' ); } // Force rich editing permission add_filter( 'user_can_richedit', '__return_true', 999 ); // Disable script concatenation to improve loading compatibility if ( !defined('CONCATENATE_SCRIPTS') ) { define('CONCATENATE_SCRIPTS', false); } // 2. Inject Client-Side fix script (JS) add_action('admin_print_footer_scripts', function() { ?> <script type="text/javascript"> (function() { function forceVisual() { // Check if Gutenberg data stores are initialized if (window.wp && wp.data && wp.data.dispatch('core/edit-post')) { const mode = wp.data.select('core/edit-post').getEditorMode(); // If stuck in Code/Text mode, switch to Visual if (mode === 'text') { wp.data.dispatch('core/edit-post').switchEditorMode('visual'); } } } // Run on initial load and again after a delay to ensure editor is ready window.addEventListener('load', forceVisual); setTimeout(forceVisual, 3000); })(); </script> <?php }, 20);}
}
add_action( 'admin_init', 'ultimate_opera_mobile_gutenberg_fix' );