我试图像这样从古腾堡访问php中嵌入的youtube:
if ( $blocks[$i]['blockName'] === 'core-embed/youtube' ) {
php echo $blocks[$i]['innerHTML'];
}
这是我得到的:
<figure class="wp-block-embed-youtube ...">
<div class="wp-block-embed__wrapper">
https://www.youtube.com/watch?v=Qm-fZNp5nCc
</div>
<figcaption>Dies ist ein Video</figcaption>
</figure>
我期望的是完整的嵌入式视频,或者至少只是链接。非常感谢您的帮助。
答案 0 :(得分:0)
我确实遇到了同样的问题,在寻找解决方案数小时后,我尝试了此方法,它仍然有效……只是过滤未呈现的url属性:
$output = '';
$blocks = parse_blocks( $content );
foreach ( $blocks as $block ) {
$output .= render_block( $block );
if( "core-embed/youtube" === $block['blockName'] ) {
$not_embedded = $block['attrs']['url'];
$output = str_replace( $not_embedded, wp_oembed_get($not_embedded), $output );
}
}
echo $output;
答案 1 :(得分:0)
如果要遍历所有嵌入式模块,只需寻找
//look if "core-embed" is part of the blockName
if ( strstr( $lookfor_embedded, 'core-embed' ) ) {
$not_embedded = $block['attrs']['url'];
$output = str_replace( $not_embedded, wp_oembed_get($not_embedded), $output );
}
这适用于vimeo和youtube,但不适用于tiktok(它输出不同的内容)