WordPress.org

Make WordPress Core

Ticket #15405: XMLRPCpostformats.diff

File XMLRPCpostformats.diff, 3.5 KB (added by ericmann, 3 years ago)

Adds post format support to XML-RPC methods.

  • class-wp-xmlrpc-server.php

     
    6363                        'wp.getCommentStatusList' => 'this:wp_getCommentStatusList', 
    6464                        'wp.getMediaItem'               => 'this:wp_getMediaItem', 
    6565                        'wp.getMediaLibrary'    => 'this:wp_getMediaLibrary', 
     66                        'wp.getPostFormats'             => 'this:wp_getPostFormats', 
    6667 
    6768                        // Blogger API 
    6869                        'blogger.getUsersBlogs' => 'this:blogger_getUsersBlogs', 
     
    16021603                return $attachments_struct; 
    16031604        } 
    16041605 
     1606        /** 
     1607         * Retrives a list of post formats used by the site 
     1608         * 
     1609         * @since 3.1.0 
     1610         * 
     1611         * @param array $args Method parameters. Contains: 
     1612         *  - blog_id 
     1613         *  - username 
     1614         *  - password 
     1615         * @return array 
     1616         */ 
     1617         function wp_getPostFormats($args) { 
     1618                $this->escape($args); 
     1619                 
     1620                $blog_ID = (int) $args[0];      // we will support this in the near future 
     1621                $username = $args[1]; 
     1622                $password = $args[2]; 
     1623                 
     1624                if ( !$user = $this->login($username, $password) ) 
     1625                        return $this->error; 
     1626                         
     1627                do_action('xmlrpc_call', 'wp.getPostFormats'); 
     1628                 
     1629                $post_formats = array(); 
     1630                 
     1631                $strings = get_post_format_strings(); 
     1632                foreach ( $strings as $format ) { 
     1633                        $post_formats['postFormatSlug'] = $format[0]; 
     1634                        $post_formats['postFormatName'] = $format[1]; 
     1635                } 
     1636                 
     1637                return $post_formats; 
     1638         } 
     1639 
    16051640        /* Blogger API functions. 
    16061641         * specs on http://plant.blogger.com/api and http://groups.yahoo.com/group/bloggerDev/ 
    16071642         */ 
     
    22662301                $this->add_enclosure_if_new($post_ID, $content_struct['enclosure']); 
    22672302 
    22682303                $this->attach_uploads( $post_ID, $post_content ); 
     2304                 
     2305                // Handle post formats if assigned 
     2306                if ( isset($content_struct["wp_post_format"]) ) { 
     2307                        $format = sanitize_key( $content_struct["wp_post_format"] ); 
     2308                        wp_set_post_terms( $post_ID, array('post-format-' . $format), 'post_format' ); 
     2309                } 
    22692310 
    22702311                logIO('O', "Posted ! ID: $post_ID"); 
    22712312 
     
    25522593                $this->add_enclosure_if_new($post_ID, $content_struct['enclosure']); 
    25532594 
    25542595                $this->attach_uploads( $ID, $post_content ); 
     2596                 
     2597                // Handle post formats if assigned 
     2598                if ( isset($content_struct["wp_post_format"]) ) { 
     2599                        $format = sanitize_key( $content_struct["wp_post_format"] ); 
     2600                        wp_set_post_terms( $post_ID, array('post-format-' . $format), 'post_format' ); 
     2601                } 
    25552602 
    25562603                logIO('O',"(MW) Edited ! ID: $post_ID"); 
    25572604 
     
    26192666                        // Consider future posts as published 
    26202667                        if ( $postdata['post_status'] === 'future' ) 
    26212668                                $postdata['post_status'] = 'publish'; 
     2669                                 
     2670                        // Get post format 
     2671                        $post_format = get_post_format( $post_ID ); 
    26222672 
    26232673                        $sticky = false; 
    26242674                        if ( is_sticky( $post_ID ) ) 
     
    26602710                                'date_created_gmt' => new IXR_Date($post_date_gmt), 
    26612711                                'post_status' => $postdata['post_status'], 
    26622712                                'custom_fields' => $this->get_custom_fields($post_ID), 
     2713                                'wp_post_format' => $post_format, 
    26632714                                'sticky' => $sticky 
    26642715                        ); 
    26652716 
     
    27402791                        // Consider future posts as published 
    27412792                        if ( $entry['post_status'] === 'future' ) 
    27422793                                $entry['post_status'] = 'publish'; 
     2794                                 
     2795                        // Get post format 
     2796                        $post_format = get_post_format( $entry['ID'] ); 
    27432797 
    27442798                        $struct[] = array( 
    27452799                                'dateCreated' => new IXR_Date($post_date), 
     
    27632817                                'wp_author_display_name' => $author->display_name, 
    27642818                                'date_created_gmt' => new IXR_Date($post_date_gmt), 
    27652819                                'post_status' => $entry['post_status'], 
    2766                                 'custom_fields' => $this->get_custom_fields($entry['ID']) 
     2820                                'custom_fields' => $this->get_custom_fields($entry['ID']), 
     2821                                'wp_post_format' => $post_format                                 
    27672822                        ); 
    27682823 
    27692824                }