【问题标题】:How to access Gutenberg "core-embed/youtube" with php如何使用 php 访问 Gutenberg “core-embed/youtube”
【发布时间】:2020-11-21 12:31:52
【问题描述】:
我尝试在我的 php 中访问来自 Gutenberg 的嵌入 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>
我期望的是完整的嵌入式视频,或者至少只是链接。我会非常感谢您的任何帮助。
【问题讨论】:
标签:
php
wordpress-gutenberg
gutenberg-blocks
【解决方案1】:
我确实遇到了同样的问题,在寻找解决方案数小时后,我尝试了这个并且它正在工作......只需过滤未呈现的 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;
【解决方案2】:
如果你想浏览所有嵌入的块,你可以寻找
//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(它输出不同的东西)