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%
OS media – HTML5 Featured Video
OS-media allow streaming of mp4/webm/ogv video progressively through PHP. It works with all WP themes, but is designed specifically for OS-media theme, a Twenty Fourteen Child Theme that is able to properly handle the layout of Custom Post for Featured Videos. DEMO ONLINE: http://openstream.tv/demo/ OS-media WP theme: http://www.mariomarino.eu/os-media-wordpress-theme/ You can insert multimedia content: in normal post or page with the classic shortcodes added to the post textarea through control panel. in Custom Post Type for “Featured Video”, a dedicated area where we have a single “Featured video” for each page (like WP Featured Images). There are 5 ways to insert video: from local WP installation (after upload video files through FTP): you must place the PATH of this local video resource (for example: /opt/lampp/htdocs/wp/wp-content/uploads/video)in general settings and files list appears in file selector in each control panel of single post. from any file server or WP installation: you must place the URL (http://…) and files list appears in file selector. from Amazon S3 (Simple Storage Server) [files list appears in file selector], directly uploading (or selecting) files through WordPress media uploader (limited size: depends on the configuration of php and WP) [dedicated input for each format: mp4, webm, ogg] from the platform Youtube & Vimeo. [dedicated input] NOTE: the way 1 is recommended if you need to hide the video URL and prevents users from easily downloading the source. For OSmedia Featured video (Custom Post Type), if you don’t use Os-media theme you can insert the function Osmedia_video() in your theme. This content are also optimized for latest WP theme like Twenty Fifteen or Twenty Fourteen, automatically detected by this plugin, which loads the dedicated layout for CPT content. If your theme is not recognized, is loaded by default the file layout/osmedia_cpt.php, that you can edit and customize for display your featured video. For normal post/page you can place Poster Image for video URL in shortcode (img=””). In custom Post Field you can use the WP Featured Image, otherwise the plugin try to load image file from the same directory with the same name and .jpg extension. Some configs parameters in Option settings are general config, not present in single-post settings, this one are effective for post already created (for example: “local video path”, or “player skin”). And some other config parameters for default setting that are overwritten by the same settings parameters present in single-post (for example: “width”, or “autoplay”). List of all parameters of OS-media video: http://www.mariomarino.eu/wp-content/uploads/2013/10/OSmedia_vars.pdf Shortcode example: [video file=”demo” fileurl="https://s3-eu-west-1.amazonaws.com/” img="http://.." youtube="KTRVYDwfDyU" width="640" height="360"] You can customize you own Video-js skin player simply generating css file through this tool: http://codepen.io/heff/pen/EarCt. After that upload this file in the plugin folder: player/videojs/skin. The file name should reflect the name of the main class of the css file (not including the extension .css). More Info on my personal blog: http://www.mariomarino.eu/en/os-media-wordpress-video-plugin/ Credits: Video-js video library version 5.2.1 The skeleton for an object-oriented/MVC WordPress plugin by Ian Dunn. The VideoStream class by Md Ali Ahsan Rana. IMPORTANT NOTE about old version (1.0): The old featured video post create through old version of this plugin MUST be simply manually reloaded in Admin Area and, when appear the video data on the metabox form, click “Generate Shortcode” button and save post. This because in the new version in normal post and page, video are displayed only through shortcode.