WordPress.org

Make WordPress Core

Ticket #21397: 21397.diff

File 21397.diff, 5.6 KB (added by brandondove, 3 years ago)
  • wp-includes/class-wp-xmlrpc-server.php

     
    7878                        'wp.getPostFormats'     => 'this:wp_getPostFormats', 
    7979                        'wp.getPostType'                => 'this:wp_getPostType', 
    8080                        'wp.getPostTypes'               => 'this:wp_getPostTypes', 
     81                        'wp.getRevision'                => 'this:wp_getRevision', 
     82                        'wp.getRevisions'               => 'this:wp_getRevisions', 
     83                        'wp.newRevision'                => 'this:wp_newRevision', 
     84                        'wp.restoreRevision'    => 'this:wp_restoreRevision', 
    8185 
    8286                        // Blogger API 
    8387                        'blogger.getUsersBlogs' => 'this:blogger_getUsersBlogs', 
     
    31643168                return $struct; 
    31653169        } 
    31663170 
     3171        /** 
     3172         * Retrieves a post revision 
     3173         * 
     3174         * @since 3.5.0 
     3175         * 
     3176         * @uses wp_get_post_revision() 
     3177         * @param array $args Method parameters. Contains: 
     3178         *  - int     $blog_id 
     3179         *  - string  $username 
     3180         *  - string  $password 
     3181         *  - int     $post_id 
     3182         *  - array   $fields 
     3183         * @return array 
     3184         */ 
     3185        function wp_getRevision( $args ) { 
     3186                if ( ! $this->minimum_args( $args, 4 ) ) 
     3187                        return $this->error; 
     3188 
     3189                $this->escape( $args ); 
     3190 
     3191                $blog_id            = (int) $args[0]; 
     3192                $username           = $args[1]; 
     3193                $password           = $args[2]; 
     3194                $post_id            = (int) $args[3]; 
     3195 
     3196                if ( isset( $args[4] ) ) 
     3197                        $fields = $args[4]; 
     3198                else 
     3199                        $fields = apply_filters( 'xmlrpc_default_revision_fields', array( 'post' ), 'wp.getRevision' ); 
     3200 
     3201                if ( ! $user = $this->login( $username, $password ) ) 
     3202                        return $this->error; 
     3203 
     3204                do_action( 'xmlrpc_call', 'wp.getRevision' ); 
     3205 
     3206                $post = wp_get_post_revision( $post_id, ARRAY_A ); 
     3207 
     3208                if ( empty( $post['ID'] ) ) 
     3209                        return new IXR_Error( 404, __( 'Invalid post ID.' ) ); 
     3210 
     3211                return $this->_prepare_post( $post, $fields ); 
     3212        } 
     3213 
     3214        /** 
     3215         * Retrieve revisions. 
     3216         * 
     3217         * @since 3.5.0 
     3218         * 
     3219         * The optional $filter parameter modifies the query used to retrieve posts. 
     3220         * Accepted keys are 'post_type', 'post_status', 'number', 'offset', 
     3221         * 'orderby', and 'order'. 
     3222         * 
     3223         * The optional $fields parameter specifies what fields will be included 
     3224         * in the response array. 
     3225         * 
     3226         * @uses wp_get_recent_posts() 
     3227         * @see wp_getPost() for more on $fields 
     3228         * @see get_posts() for more on $filter values 
     3229         * 
     3230         * @param array $args Method parameters. Contains: 
     3231         *  - int     $blog_id 
     3232         *  - string  $username 
     3233         *  - string  $password 
     3234         *  - int     $post_id 
     3235         *  - array   $fields 
     3236         * @return array contains a collection of posts. 
     3237         */ 
     3238        function wp_getRevisions( $args ) { 
     3239                if ( ! $this->minimum_args( $args, 4 ) ) 
     3240                        return $this->error; 
     3241                $this->escape( $args ); 
     3242 
     3243                $blog_id    = (int) $args[0]; 
     3244                $username   = $args[1]; 
     3245                $password   = $args[2]; 
     3246                $post_id    = (int) $args[3]; 
     3247 
     3248                if ( isset( $args[4] ) ) 
     3249                        $fields = $args[4]; 
     3250                else 
     3251                        $fields = apply_filters( 'xmlrpc_default_revision_fields', array( 'post' ), 'wp.getRevisions' ); 
     3252 
     3253                if ( ! $user = $this->login( $username, $password ) ) 
     3254                        return $this->error; 
     3255 
     3256                do_action( 'xmlrpc_call', 'wp.getRevisions' ); 
     3257 
     3258                $query = array(); 
     3259 
     3260                $posts_list = wp_get_post_revisions( $post_id ); 
     3261 
     3262                if ( ! $posts_list ) 
     3263                        return array(); 
     3264 
     3265                // holds all the posts data 
     3266                $struct = array(); 
     3267 
     3268                foreach ( $posts_list as $post ) { 
     3269                        $struct[] = $this->_prepare_post( $post, $fields ); 
     3270                } 
     3271 
     3272                return $struct; 
     3273        } 
     3274 
     3275        /** 
     3276         * Retrieve revisions. 
     3277         * 
     3278         * @since 3.5.0 
     3279         * 
     3280         * The optional $filter parameter modifies the query used to retrieve posts. 
     3281         * Accepted keys are 'post_type', 'post_status', 'number', 'offset', 
     3282         * 'orderby', and 'order'. 
     3283         * 
     3284         * The optional $fields parameter specifies what fields will be included 
     3285         * in the response array. 
     3286         * 
     3287         * @uses wp_get_recent_posts() 
     3288         * @see wp_getPost() for more on $fields 
     3289         * @see get_posts() for more on $filter values 
     3290         * 
     3291         * @param array $args Method parameters. Contains: 
     3292         *  - int     $blog_id 
     3293         *  - string  $username 
     3294         *  - string  $password 
     3295         *  - int     $post_id 
     3296         *  - array   $fields 
     3297         * @return array contains a collection of posts. 
     3298         */ 
     3299        function wp_newRevision( $args ) { 
     3300                add_action( 'pre_post_update', 'wp_save_post_revision' ); 
     3301                return $this->wp_editPost( $args ); 
     3302        } 
     3303 
     3304        /** 
     3305         * Retrieve revisions. 
     3306         * 
     3307         * @since 3.5.0 
     3308         * 
     3309         * The optional $filter parameter modifies the query used to retrieve posts. 
     3310         * Accepted keys are 'post_type', 'post_status', 'number', 'offset', 
     3311         * 'orderby', and 'order'. 
     3312         * 
     3313         * The optional $fields parameter specifies what fields will be included 
     3314         * in the response array. 
     3315         * 
     3316         * @uses wp_get_recent_posts() 
     3317         * @see wp_getPost() for more on $fields 
     3318         * @see get_posts() for more on $filter values 
     3319         * 
     3320         * @param array $args Method parameters. Contains: 
     3321         *  - int     $blog_id 
     3322         *  - string  $username 
     3323         *  - string  $password 
     3324         *  - int     $post_id 
     3325         *  - array   $fields 
     3326         * @return array contains a collection of posts. 
     3327         */ 
     3328        function wp_restoreRevision( $args ) { 
     3329                if ( ! $this->minimum_args( $args, 3 ) ) 
     3330                        return $this->error; 
     3331 
     3332                $this->escape( $args ); 
     3333 
     3334                $blog_id    = (int) $args[0]; 
     3335                $username   = $args[1]; 
     3336                $password   = $args[2]; 
     3337                $post_id    = (int) $args[3]; 
     3338 
     3339                if ( isset( $args[4] ) ) 
     3340                        $fields = $args[4]; 
     3341                else 
     3342                        $fields = apply_filters( 'xmlrpc_default_revision_fields', array( 'post' ), 'wp.restoreRevisions' ); 
     3343 
     3344                if ( ! $user = $this->login( $username, $password ) ) 
     3345                        return $this->error; 
     3346 
     3347                do_action( 'xmlrpc_call', 'wp.restoreRevision' ); 
     3348 
     3349                $post = wp_get_post_revision( $post_id, ARRAY_A ); 
     3350 
     3351                return true; 
     3352        } 
     3353 
    31673354        /* Blogger API functions. 
    31683355         * specs on http://plant.blogger.com/api and http://groups.yahoo.com/group/bloggerDev/ 
    31693356         */