WordPress 的 Post Embed 功能详细介绍

什么是 Post Embed 功能

WordPress 4.4 增强了 Easy Embeds 功能,发布了一个新功能叫做 Post Embed,可以在任意 WordPress 站点用嵌入的方式插入 WordPress 文章。

只需要简单在后台文章编辑器直接填入文章的链接即可,自动显示该文章的标题,摘要以及特色图片(如果设置了的话),并且还有站点图标(没有则使用 WordPress 默认图标),留言链接和分享链接,如:(采用截图,本站已经移除Post Embed 功能,2016年9月19日修改)

这个功能在引起自己博客的其他文章或者其他博客文章的时候,非常方便,并且可视化的效果,让读者一目了然。

如果网站开启了固定链接,你可以直接在文章链接最后加入 /embed/ 即可看到 Post Embed 效果。

https://pdbn.top/990.html/embed/

定制 Post Embed 显示效果

你可以查看源代码看到这个页面的 header 和 footer 已经插入一堆 JS 和 CSS 代码,这是通过embed_headembed_footer 这两个 action 实现的,所以也可以通过这两个 action 自定义去自定义 Post Embed 的显示效果。

另外 Post Embed 模板被使用的时候,会发送 X-WP-embed:true 的 header,所以可以通过这个很快定义这是一个 Post Embed 模板。

屏蔽 Post Embed 功能

如果觉得这玩意对你没什么意义,你也可以屏蔽它,这样即屏蔽了作为 Post Embed 服务端,也屏蔽了 Post Embed 客户端。

在当前主题的 functions.php 文件中添加如下代码来屏蔽该功能:

remove_action('rest_api_init', 'wp_oembed_register_route');
remove_filter('rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4);

remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10 );
remove_filter('oembed_response_data',   'get_oembed_response_data_rich',  10, 4);

remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('wp_head', 'wp_oembed_add_host_js');

详细阅读:http://blog.wpjam.com/m/diable-wordpress-post-embed/