块编辑器:沙盒IFRAME显示过时的HTML

时间:2020-01-26 作者:kevinweber

即使用户禁用流行Lazy Load for Videos 插件和前端会正确重置视频,这样视频就不会再延迟加载,古腾堡块也不会重置。下面的屏幕截图显示了iframe如何仍然包含停用插件的HTML:

enter image description here

我清除了浏览器缓存和cookie,确保清空了oembed元数据缓存,并尝试使用中的命令清除更多缓存How can I clear oEmbed caches for YouTube on posts as they are loaded.

如何确保旧的HTML消失,而支持默认的Youtube嵌入行为?

1 个回复
最合适的回答,由SO网友:kevinweber 整理而成

WordPress(Gutenberg)块编辑器从嵌入的代理端点请求数据,该端点使用Transients API. 似乎清除所有oembed缓存并不能同时清除oembed临时缓存。

以下数据库查询无法从Posteta表中清除oembed缓存:

global $wpdb;
$meta_key_1 = "|_oembed|_%%";
$meta_key_2 = "|_oembed|_time|_%%";
$wpdb->query(
    $query = $wpdb->prepare( 
        "DELETE FROM `".$wpdb->postmeta."`
            WHERE `meta_key` LIKE %s ESCAPE \'|\'
            OR `meta_key` LIKE %s ESCAPE \'|\'",
        $meta_key_1,
        $meta_key_2
    )
);
您还需要从选项表中清除临时缓存,如下所示:

$option_name_1 = "|_transient|_oembed|_%%";
$option_name_2 = "|_transient|_timeout|_oembed|_%%";
$wpdb->query(
    $query = $wpdb->prepare( 
        "DELETE FROM `".$wpdb->options."`
            WHERE `option_name` LIKE %s ESCAPE \'|\'
            OR `option_name` LIKE %s ESCAPE \'|\'",
        $option_name_1,
        $option_name_2
    )
);

相关推荐

如何制作像YouTube Gutenberg BLOCK这样可保存的预览?

Youtube Gutenberg块使您输入Youtube Url,然后显示视频。。。在您选择它并在工具栏上选择“编辑”之前,请查看url并根据需要进行更改。我知道编辑体验来自编辑功能,保存功能会在插件失败或未安装的情况下创建回退html。。。大多数howtos 我发现不包括预览/编辑部分-是否有示例源代码使其不仅保存,而且显示预览,然后允许工具栏从wysiwyg返回编辑器?