Embeds: Conditionally enqueue wp-embed
only if needed and send ready
message in case script loads after post embed windows.
- Prevent loading
wp-embed
script unconditionally on every page in favor of conditionally enqueueing when a post embed is detected. The wp-embed
script is also explicitly marked as being in the footer group. Sites which currently disable post embed scripts from being enqueued via remove_action( 'wp_head', 'wp_oembed_add_host_js' )
will continue to do so.
- Send a
ready
message from the host page to each post embed window in case the iframe
loads before the wp-embed
script does. When the ready
message is received by the post embed window, it sends the same height
message as it sends when it loads.
- Eliminate use of
grunt-include
to inject emoji script and the post embed script. Instead obtain the script contents via file_get_contents()
(as is done elsewhere in core) and utilize wp_print_inline_script_tag()
/wp_get_inline_script_tag()
to construct out the script. This simplifies the logic and allows the running of src without SCRIPT_DEBUG
enabled.
- For the embed code that users are provided to copy for embedding outside of WP, add the
secret
on the blockquote
and iframe
. This ensures the blockquote
will be hidden when the iframe
loads. The embed code in question is accessed here via get_post_embed_html()
.
Props westonruter, swissspidy, pento, flixos90, ocean90.
Fixes #44632, #44306.