WordPress.org

Make WordPress Core

Ticket #15098: featured_image_xmlrpc.patch

File featured_image_xmlrpc.patch, 2.7 KB (added by cfinke, 4 years ago)

Adds support for featured_image field in XML-RPC.

  • wp-includes/class-wp-xmlrpc-server.php

     
    15961596                        'caption'                               => $attachment->post_excerpt, 
    15971597                        'description'                   => $attachment->post_content, 
    15981598                        'metadata'                              => wp_get_attachment_metadata($attachment->ID), 
     1599                        'id'                                    => $attachment->ID, 
    15991600                ); 
    16001601 
    16011602                return $attachment_struct; 
     
    21572158         *  - wp_page_parent_id 
    21582159         *  - wp_page_order 
    21592160         *  - wp_author_id 
     2161         *  - wp_featured_image 
    21602162         *  - post_status | page_status - can be 'draft', 'private', 'publish', or 'pending' 
    21612163         *  - mt_allow_comments - can be 'open' or 'closed' 
    21622164         *  - mt_allow_pings - can be 'open' or 'closed' 
     
    24152417                if ( isset($content_struct['custom_fields']) ) 
    24162418                        $this->set_custom_fields($post_ID, $content_struct['custom_fields']); 
    24172419 
     2420                if ( isset($content_struct['wp_featured_image']) && $content_struct['wp_featured_image'] ) 
     2421                        update_post_meta($post_ID, "_thumbnail_id", $content_struct['wp_featured_image']); 
     2422 
    24182423                // Handle enclosures 
    24192424                $thisEnclosure = isset($content_struct['enclosure']) ? $content_struct['enclosure'] : null; 
    24202425                $this->add_enclosure_if_new($post_ID, $thisEnclosure); 
     
    27282733                                unstick_post( $post_ID ); 
    27292734                } 
    27302735 
     2736                if ( isset($content_struct['wp_featured_image']) && $content_struct['wp_featured_image'] ) { 
     2737                        update_post_meta($post_ID, "_thumbnail_id", $content_struct['wp_featured_image']); 
     2738                } 
     2739                else { 
     2740                        delete_post_meta($post_ID, "_thumbnail_id", ""); 
     2741                } 
     2742 
    27312743                if ( isset($content_struct['custom_fields']) ) 
    27322744                        $this->set_custom_fields($post_ID, $content_struct['custom_fields']); 
    27332745 
     
    28602872 
    28612873                        if ( !empty($enclosure) ) $resp['enclosure'] = $enclosure; 
    28622874 
     2875                        foreach ( $resp['custom_fields'] as $custom_field ) { 
     2876                                if ( $custom_field["key"] == '_thumbnail_id' ) { 
     2877                                        if ( $imageurl = wp_get_attachment_url($custom_field['value']) ) { 
     2878                                                $resp['wp_featured_image'] = array( 'id' => $custom_field['value'], 'url' => $imageurl ); 
     2879                                        } 
     2880                                } 
     2881                        } 
     2882 
    28632883                        return $resp; 
    28642884                } else { 
    28652885                        return new IXR_Error(404, __('Sorry, no such post.')); 
     
    29672987                                'wp_post_format' => $post_format 
    29682988                        ); 
    29692989 
     2990                        $entry_index = count($struct) - 1; 
     2991 
     2992                        foreach ( $struct[$entry_index]['custom_fields'] as $custom_field ) { 
     2993                                if ( $custom_field['key'] == '_thumbnail_id' ) { 
     2994                                        if ( $imageurl = wp_get_attachment_url($custom_field['value']) ) { 
     2995                                                $struct[$entry_index]['wp_featured_image'] = array( 'id' => $custom_field['value'], 'url' => $imageurl ); 
     2996                                        } 
     2997                                } 
     2998                        } 
    29702999                } 
    29713000 
    29723001                $recent_posts = array();