WordPress块编辑器嵌入不能在主题中工作(single.php)

时间:2021-06-29 作者:sariDon

我正在尝试嵌入\'spotify\' 和\'youtube\' 块编辑器中的服务。当从管理员添加时,它们在块编辑器中显示良好,但当从主题(single.php)打印帖子内容时,只打印相应的URL。呈现的HTML如下所示:

对于Spotify:

<figure class="wp-block-embed is-type-rich is-provider-spotify wp-block-embed-spotify wp-embed-aspect-21-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
https://open.spotify.com/episode/xxxxxx&amp;dl_branch=1
</div></figure>
对于Youtube:

<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
https://www.youtube.com/watch?v=xxxxxx
</div></figure>
单件。php,我通过get_posts() 并使用以下内容打印内容:

<?php echo do_shortcode($tpostObj->content); ?>
其他内容,如文本、图像等工作正常。如果嵌入是使用自定义HTML iframe完成的,则它们可以正常工作。

提前谢谢。

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

那是因为他们使用的是oEmbed,而不是短代码。

您应该使用该函数the_content() 呈现帖子的内容,因为它应用了使嵌入、短代码等正常工作所需的所有东西。如果出于某种原因,这不是一个选项,您可以应用内容过滤器。

<?php echo apply_filters( \'the_content\', $tpostObj->content ); ?>

相关推荐

当in_the_loop()为假时,何时以及为什么is_Single(‘my_cpt’)为真?

我正在使用模板系统的示例代码。此地址的页码:http://project.test/my_cpt/hello-post/.无法理解原因is_singular( \'my_cpt\' ) 是true 虽然in_the_loop() 是false.在页面模板中The Loop "E;“工程”:if ( have_posts() ) { while ( have_posts() ) { the_post(); ?>