Better REST API Featured Images
Note: You probably do not need this plugin. The REST API already supports adding the query param ?_embed to your URL and the response will then include all “embedded media”, including the featured image, and the data you get there is exactly what this plugin gives you. The only reasons to use this plugin at this point are if you prefer to have the featured image data in a top level field in the response rather than among other embedded media in the _embedded field, and if you always want the featured image data in the response rather than having to ask for it with ?_embed. I still use this plugin because I do usually want both these things, but definitely give ?_embed a try before using this plugin. 🙂 Version 2 of the WordPress REST API returns a featured_media field (formerly featured_image) on the post object by default, but this field is simply the image ID. This plugin adds a better_featured_image field to the post object that contains the available image sizes and urls, allowing you to get this information without making a second request. It takes this: "featured_media": 13, And turns it into this: "featured_media": 13, "better_featured_image": { "id": 13, "alt_text": "Hot Air Balloons", "caption": "The event featured hot air balloon rides", "description": "The hot air balloons from the big event", "media_type": "image", "media_details": { "width": 5760, "height": 3840, "file": "2015/09/balloons.jpg", "sizes": { "thumbnail": { "file": "balloons-150x150.jpg", "width": 150, "height": 150, "mime-type": "image/jpeg", "source_url": "http://api.example.com/wp-content/uploads/2015/09/balloons-150x150.jpg" }, "medium": { "file": "balloons-300x200.jpg", "width": 300, "height": 200, "mime-type": "image/jpeg", "source_url": "http://api.example.com/wp-content/uploads/2015/09/balloons-300x200.jpg" }, "large": { "file": "balloons-1024x683.jpg", "width": 1024, "height": 683, "mime-type": "image/jpeg", "source_url": "http://api.example.com/wp-content/uploads/2015/09/balloons-1024x683.jpg" }, "post-thumbnail": { "file": "balloons-825x510.jpg", "width": 825, "height": 510, "mime-type": "image/jpeg", "source_url": "http://api.example.com/wp-content/uploads/2015/09/balloons-825x510.jpg" } }, "image_meta": { "aperture": 6.3, "credit": "", "camera": "Canon EOS 5D Mark III", "caption": "", "created_timestamp": 1433110262, "copyright": "", "focal_length": "50", "iso": "100", "shutter_speed": "0.004", "title": "", "orientation": 1 } }, "post": null, "source_url": "http://api.example.com/wp-content/uploads/2015/09/balloons.jpg" }, The format of the response is nearly identical to what you would get sending a request to /wp-json/wp/v2/media/13 or using ?_embed. When no featured image has been set on the post the better_featured_image field will have a value of null. I’ve done some basic performance tests that indicate the difference in response times with and without this plugin to be about 10-15ms for a collection of 10 posts and 0-5ms for a single post. For me this is much faster than making a second request to /media/, especially for multiple posts. As of version 1.1.0, there is a filter better_rest_api_featured_image that allows you to add custom data to the better_featured_image field. The filter is directly on the return value of the function that returns the better_featured_image field. This can be used to do things like add custom image meta or an SVG version of the image to the response. Here’s an example of how you might use it: add_filter( 'better_rest_api_featured_image', 'xxx_modify_rest_api_featured_image', 10, 2 ); /** * Modify the Better REST API Featured Image response. * * @param array $featured_image The array of image data. * @param int $image_id The image ID. * * @return array The modified image data. */ function xxx_modify_rest_api_featured_image( $featured_image, $image_id ) { // Add an extra_data_string field with a string value. $featured_image['extra_data_string'] = 'A custom value.'; // Add an extra_data_array field with an array value. $featured_image['extra_data_array'] = array( 'custom_key' => 'A custom value.', ); return $featured_image; } This plugin is on on Github and pull requests are always welcome. 🙂
Top keywords
- image33×4.94%
- featured24×3.59%
- featured image18×2.69%
- api12×1.80%
- data10×1.50%
- field10×1.50%
- jpg10×1.50%
- media9×1.35%
- better7×1.05%
- response7×1.05%
- rest7×1.05%
- rest api7×1.05%
Featured Image from URL (FIFU)
WordPress plugin for remote featured images, videos, audios and more FIFU plugin has helped thousands of websites worldwide save money on storage, processing, and copyright since 2015. If you are tired of wasting time and resources with thumbnail regeneration, image optimization, and never-ending imports, this plugin is for you. Featured image Use a remote image as featured image of your post, page or custom post type. Remote featured image Optimized images Make all images square Image search (Unsplash) Default featured image Hide featured media Modify post content Auto set image title Column for featured image [PRO] Image search (search engine) [PRO] Disable right-click [PRO] Save in the media library [PRO] Replace not found image [PRO] Custom popup [PRO] bbPress and BuddyBoss Platform integration [PRO] Page redirection Automatic featured media Auto set featured media from post content [PRO] Auto set featured image using post title and a search engine [PRO] Auto set featured media using web page address [PRO] Auto set product images from ASIN [PRO] Auto set featured media from custom field [PRO] Auto set featured image using ISBN [PRO] Auto set screenshot as featured image [PRO] Auto set featured image from Unsplash using tags [PRO] Auto-share on social media Automation WP-CLI integration [PRO] Add-on for WP All Import [PRO] WooCommerce import [PRO] WP REST API [PRO] WooCommerce REST API [PRO] Schedule metadata generation WooCommerce Remote product image Lightbox and zoom [PRO] Gallery for remote images [PRO] Gallery for remote videos [PRO] Category images auto set [PRO] Variable product [PRO] Variation image [PRO] Gallery for variation image [PRO] Save in the media library [PRO] FIFU product gallery [PRO] Quick Buy [PRO] Add image to order email Featured video Supports URLs from YouTube, Vimeo, Twitter, 9GAG, Cloudinary, Tumblr, Publitio, JW Player, VideoPress, Sprout, Odysee, Rumble, Dailymotion, Cloudflare Stream, Bunny Stream, Amazon, BitChute, Brighteon, Google Drive, Spotify and SoundCloud. External and local video files are supported as well. [PRO] Featured video [PRO] Watch later [PRO] Video thumbnail [PRO] Play button [PRO] Minimum width [PRO] Video controls [PRO] Autoplay on mouseover [PRO] Autoplay [PRO] Playback loop [PRO] Mute [PRO] Privacy enhanced mode [PRO] Background video Widgets for Elementor Featured image [PRO] Featured video Widgets for WordPress [PRO] Featured media [PRO] Featured grid [PRO] Product gallery Fields for Gravity-Forms Featured image [PRO] Featured video [PRO] Featured slider Fields for Dokan Featured image [PRO] Product gallery Others [PRO] Quick edit [PRO] Featured audio [PRO] Featured slider [PRO] Shortcode [PRO] Taxonomy image Functions for developers fifu_dev_set_image($post_id, $image_url) [PRO] fifu_dev_set_video($post_id, $video_url) [PRO] fifu_dev_set_slider($post_id, $url_list, $alt_list) [PRO] fifu_dev_set_image_list($post_id, $image_url_list) [PRO] fifu_dev_set_video_list($post_id, $video_url_list) [PRO] fifu_dev_set_category_image($term_id, $image_url) [PRO] fifu_dev_set_category_video($term_id, $video_url) FIFU Cloud Cloud storage (never lose an image again) Global CDN (images loaded much faster) Optimized thumbnails (processed in the cloud) Usage-based billing (per stored image) Smart cropping (detects people and objects before cropping) Hotlink protection (sites can’t embed your images) Links FIFU PRO Dummy site for testing Extension for Google Chrome Smoke Test