WordPress.org

Make WordPress Core

Ticket #15405: XMLRPCpostformats.3.diff

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

Allows for "default" to be used to set a post format of "default." Works in addition to the default value of "0."

  • wp-includes/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',
     
    16011602
    16021603                return $attachments_struct;
    16031604        }
     1605       
     1606        /**
     1607          * Retrives a list of post formats used by the site
     1608          *
     1609          * @since 3.1
     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);
    16041619
     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                $strings = get_post_format_strings();
     1630 
     1631                return $strings;
     1632        }
     1633
    16051634        /* Blogger API functions.
    16061635         * specs on http://plant.blogger.com/api and http://groups.yahoo.com/group/bloggerDev/
    16071636         */
     
    22662295                $this->add_enclosure_if_new($post_ID, $content_struct['enclosure']);
    22672296
    22682297                $this->attach_uploads( $post_ID, $post_content );
     2298               
     2299                // Handle post formats if assigned
     2300                if ( isset($content_struct["wp_post_format"]) ) {
     2301                        $format = sanitize_key( $content_struct["wp_post_format"] );
     2302                        $format = ($format == "default") ? "0" : $format;
     2303                        wp_set_post_terms( $post_ID, array('post-format-' . $format), 'post_format' );
     2304                }
    22692305
    22702306                logIO('O', "Posted ! ID: $post_ID");
    22712307
     
    25522588                $this->add_enclosure_if_new($post_ID, $content_struct['enclosure']);
    25532589
    25542590                $this->attach_uploads( $ID, $post_content );
     2591               
     2592                // Handle post formats if assigned
     2593                if ( isset($content_struct["wp_post_format"]) ) {
     2594                        $format = sanitize_key( $content_struct["wp_post_format"] );
     2595                        $format = ($format == "default") ? "0" : $format;
     2596                        wp_set_post_terms( $post_ID, array('post-format-' . $format), 'post_format' );
     2597                }
    25552598
    25562599                logIO('O',"(MW) Edited ! ID: $post_ID");
    25572600
     
    26192662                        // Consider future posts as published
    26202663                        if ( $postdata['post_status'] === 'future' )
    26212664                                $postdata['post_status'] = 'publish';
     2665                               
     2666                        // Get post format
     2667                        $post_format = get_post_format( $post_ID );
    26222668
    26232669                        $sticky = false;
    26242670                        if ( is_sticky( $post_ID ) )
     
    26602706                                'date_created_gmt' => new IXR_Date($post_date_gmt),
    26612707                                'post_status' => $postdata['post_status'],
    26622708                                'custom_fields' => $this->get_custom_fields($post_ID),
     2709                                'wp_post_format' => $post_format,
    26632710                                'sticky' => $sticky
    26642711                        );
    26652712
     
    27402787                        // Consider future posts as published
    27412788                        if ( $entry['post_status'] === 'future' )
    27422789                                $entry['post_status'] = 'publish';
     2790                               
     2791                        // Get post format
     2792                        $post_format = get_post_format( $entry['ID'] );
    27432793
    27442794                        $struct[] = array(
    27452795                                'dateCreated' => new IXR_Date($post_date),
     
    27632813                                'wp_author_display_name' => $author->display_name,
    27642814                                'date_created_gmt' => new IXR_Date($post_date_gmt),
    27652815                                'post_status' => $entry['post_status'],
    2766                                 'custom_fields' => $this->get_custom_fields($entry['ID'])
     2816                                'custom_fields' => $this->get_custom_fields($entry['ID']),
     2817                                'wp_post_format' => $post_format
    27672818                        );
    27682819
    27692820                }