query_vars ) ) { if ( ( $lang = get_query_var( 'lang' ) ) && $closest = bogo_get_closest_locale( $lang ) ) return $closest; else return $default_locale; } if ( isset( $wp_rewrite ) && $wp_rewrite->using_permalinks() ) { $url = is_ssl() ? 'https://' : 'http://'; $url .= $_SERVER['HTTP_HOST']; $url .= $_SERVER['REQUEST_URI']; $home = set_url_scheme( get_option( 'home' ) ); $home = trailingslashit( $home ); $available_languages = bogo_available_languages(); $available_languages = array_map( 'bogo_lang_slug', array_keys( $available_languages ) ); $available_languages = implode( '|', $available_languages ); $pattern = '#^' . preg_quote( $home ) . '(' . $available_languages . ')(/|$)#'; if ( preg_match( $pattern, $url, $matches ) && $closest = bogo_get_closest_locale( $matches[1] ) ) return $closest; } $lang = bogo_get_lang_from_url(); if ( $lang && $closest = bogo_get_closest_locale( $lang ) ) return $closest; $locale = $default_locale; return $locale; } add_filter( 'query_vars', 'bogo_query_vars' ); function bogo_query_vars( $query_vars ) { $query_vars[] = 'lang'; return $query_vars; } add_shortcode( 'bogo', 'bogo_language_switcher' ); add_action( 'wp_enqueue_scripts', 'bogo_enqueue_scripts' ); function bogo_enqueue_scripts() { wp_enqueue_style( 'bogo', plugins_url( 'includes/css/style.css', BOGO_PLUGIN_BASENAME ), array(), BOGO_VERSION, 'all' ); if ( is_rtl() ) { wp_enqueue_style( 'bogo-rtl', plugins_url( 'includes/css/style-rtl.css', BOGO_PLUGIN_BASENAME ), array(), BOGO_VERSION, 'all' ); } } ?>