WordPress.org

Make WordPress Core

Ticket #12922: 12922.4.diff

File 12922.4.diff, 4.2 KB (added by flixos90, 3 years ago)
  • src/wp-admin/admin-ajax.php

     
    6363        'save-user-color-scheme', 'update-widget', 'query-themes', 'parse-embed', 'set-attachment-thumbnail',
    6464        'parse-media-shortcode', 'destroy-sessions', 'install-plugin', 'update-plugin', 'press-this-save-post',
    6565        'press-this-add-category', 'crop-image', 'generate-password', 'save-wporg-username',
     66        'get-post-thumbnail-html',
    6667);
    6768
    6869// Deprecated
  • src/wp-admin/includes/ajax-actions.php

     
    21522152}
    21532153
    21542154/**
     2155 * Ajax handler for retrieving HTML for the featured image.
     2156 *
     2157 * @since 4.6.0
     2158 */
     2159function wp_ajax_get_post_thumbnail_html() {
     2160        $post_ID = intval( $_POST['post_id'] );
     2161
     2162        check_ajax_referer( "update-post_$post_ID" );
     2163
     2164        if ( ! current_user_can( 'edit_post', $post_ID ) ) {
     2165                wp_die( -1 );
     2166        }
     2167
     2168        $thumbnail_id = intval( $_POST['thumbnail_id'] );
     2169
     2170        // For backwards compatibility, -1 refers to no featured image.
     2171        if ( -1 === $thumbnail_id ) {
     2172                $thumbnail_id = null;
     2173        }
     2174
     2175        $return = _wp_post_thumbnail_html( $thumbnail_id, $post_ID );
     2176        wp_send_json_success( $return );
     2177}
     2178
     2179/**
    21552180 * AJAX handler for setting the featured image for an attachment.
    21562181 *
    21572182 * @since 4.0.0
  • src/wp-admin/includes/post.php

     
    224224                        _wp_upgrade_revisions_of_post( $post, wp_get_post_revisions( $post_ID ) );
    225225        }
    226226
     227        if ( isset( $post_data['_thumbnail_id'] ) && post_type_supports( $ptype->name, 'thumbnail' ) ) {
     228                $thumbnail_id = intval( $post_data['_thumbnail_id'] );
     229                if ( -1 === $thumbnail_id ) {
     230                        delete_post_thumbnail( $post_ID );
     231                } else {
     232                        set_post_thumbnail( $post_ID, $thumbnail_id );
     233                }
     234        }
     235
    227236        if ( isset($post_data['visibility']) ) {
    228237                switch ( $post_data['visibility'] ) {
    229238                        case 'public' :
     
    14281437                                $thumbnail_html
    14291438                        );
    14301439                        $content .= '<p class="hide-if-no-js howto" id="set-post-thumbnail-desc">' . __( 'Click the image to edit or update' ) . '</p>';
    1431                         $content .= '<p class="hide-if-no-js"><a href="#" id="remove-post-thumbnail" onclick="WPRemoveThumbnail(\'' . $ajax_nonce . '\');return false;">' . esc_html( $post_type_object->labels->remove_featured_image ) . '</a></p>';
     1440                        $content .= '<p class="hide-if-no-js"><a href="#" id="remove-post-thumbnail">' . esc_html( $post_type_object->labels->remove_featured_image ) . '</a></p>';
    14321441                }
    14331442        }
    14341443
     1444        $content .= '<input type="hidden" name="_thumbnail_id" value="' . esc_attr( $thumbnail_id ? $thumbnail_id : '-1' ) . '" />';
     1445
    14351446        /**
    14361447         * Filters the admin post thumbnail HTML markup to return.
    14371448         *
  • src/wp-includes/js/media-editor.js

     
    649649
    650650                        settings.post.featuredImageId = id;
    651651
    652                         wp.media.post( 'set-post-thumbnail', {
    653                                 json:         true,
     652                        wp.media.post( 'get-post-thumbnail-html', {
    654653                                post_id:      settings.post.id,
    655654                                thumbnail_id: settings.post.featuredImageId,
    656655                                _wpnonce:     settings.post.nonce
    657656                        }).done( function( html ) {
     657                                if ( html == '0' ) {
     658                                        window.alert( window.setPostThumbnailL10n.error );
     659                                        return;
     660                                }
    658661                                $( '.inside', '#postimagediv' ).html( html );
    659662                        });
    660663                },
    661664                /**
     665                 * Remove the featured image id, save the post thumbnail data and
     666                 * set the HTML in the post meta box to no featured image.
     667                 */
     668                remove: function() {
     669                        wp.media.featuredImage.set( -1 );
     670                },
     671                /**
    662672                 * The Featured Image workflow
    663673                 *
    664674                 * @global wp.media.controller.FeaturedImage
     
    735745
    736746                                wp.media.featuredImage.frame().open();
    737747                        }).on( 'click', '#remove-post-thumbnail', function() {
    738                                 wp.media.view.settings.post.featuredImageId = -1;
     748                                wp.media.featuredImage.remove();
     749                                return false;
    739750                        });
    740751                }
    741752        };