-if (!function_exists('is_a')) {
- function is_a($object, $class) {
- // by Aidan Lister <aidan@php.net>
- if (get_class($object) == strtolower($class)) {
- return true;
- } else {
- return is_subclass_of($object, $class);
- }
+if ( ! function_exists( 'mb_substr' ) ) :
+ function mb_substr( $str, $start, $length = null, $encoding = null ) {
+ return _mb_substr( $str, $start, $length, $encoding );
+ }
+endif;
+
+function _mb_substr( $str, $start, $length = null, $encoding = null ) {
+ // The solution below works only for UTF-8,
+ // so in case of a different charset just use built-in substr()
+ $charset = get_option( 'blog_charset' );
+ if ( ! in_array( $charset, array( 'utf8', 'utf-8', 'UTF8', 'UTF-8' ) ) ) {
+ return is_null( $length ) ? substr( $str, $start ) : substr( $str, $start, $length );