首页 > 解决方案 > 为什么在我编写自定义“oembed_dataparse”过滤器后,wordpress 立即停止创建 oembed 缓存条目

问题描述

我制作了过滤器来替换标准数据解析输出,它在前端工作正常。但是 postmeta 表中没有 _oembed_xxxxxxxxxxxxxxx 条目,尽管 _oembed_time_xxxxxxxxxxxxxxx 是。

我的过滤器:

add_filter( 'oembed_dataparse', function ( $return, $data, $url ) {
    if ( 'YouTube' === $data->provider_name ) 
        $return = <<<EOD
<a class="elm-youtube fancybox-youtube" href="$url"><span class="ytp-cued-thumbnail-overlay"  style=""><span class="ytp-cued-thumbnail-overlay-image" style="background-image: url(&quot;{$data->thumbnail_url}&quot;);"></span><button class="ytp-large-play-button ytp-button" aria-label="Смотреть"><svg height="100%" version="1.1" viewBox="0 0 68 48" width="100%"><path class="ytp-large-play-button-bg" d="M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z" fill="#212121" fill-opacity="0.8"></path><path d="M 45,24 27,14 27,34" fill="#fff"></path></svg></button></span></a>
EOD;

    return $return;
}, 10, 3 );

怎么了?

标签: phpwordpressfilteroembed

解决方案


好吧,都是因为内容替换中的非 utf-8 字符。


推荐阅读