]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-includes/compat.php
Wordpress 3.0-scripts
[autoinstalls/wordpress.git] / wp-includes / compat.php
index 45d746bec117df33755135022634391b91802bd2..4edf33b0ce626aadac01f450ddf2e5550ba7d563 100644 (file)
@@ -129,7 +129,7 @@ if ( !function_exists('json_encode') ) {
                global $wp_json;
 
                if ( !is_a($wp_json, 'Services_JSON') ) {
-                       require_once( 'class-json.php' );
+                       require_once( ABSPATH . WPINC . '/class-json.php' );
                        $wp_json = new Services_JSON();
                }
 
@@ -138,15 +138,23 @@ if ( !function_exists('json_encode') ) {
 }
 
 if ( !function_exists('json_decode') ) {
-       function json_decode( $string ) {
+       function json_decode( $string, $assoc_array = false ) {
                global $wp_json;
 
                if ( !is_a($wp_json, 'Services_JSON') ) {
-                       require_once( 'class-json.php' );
+                       require_once( ABSPATH . WPINC . '/class-json.php' );
                        $wp_json = new Services_JSON();
                }
 
-               return $wp_json->decode( $string );
+               $res = $wp_json->decode( $string );
+               if ( $assoc_array )
+                       $res = _json_decode_object_helper( $res );
+               return $res;
+       }
+       function _json_decode_object_helper($data) {
+               if ( is_object($data) )
+                       $data = get_object_vars($data);
+               return is_array($data) ? array_map(__FUNCTION__, $data) : $data;
        }
 }