首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress (Pod) oEmbed项目

Wordpress (Pod) oEmbed项目
EN

Stack Overflow用户
提问于 2013-03-26 05:32:15
回答 2查看 1.9K关注 0票数 1

我使用fantastic Pods插件扩展了Wordpress的基本内容类型,增加了一些自定义内容类型。我构建了一个高级的自定义类型,这意味着我没有获得内置到原生页面/post类型中的自动oEmbed支持。我已经将其结构化,这样我的自定义内容类型就有一个使用PHP页面模板的pod页面,并且我为可以嵌入视频的所见即所得字段启用了oEmbed选项。

我发现了this post,它似乎表明一个基本的apply_filter函数应该自动处理任何嵌入,但我似乎无法让它工作。我对过滤器还是个新手。我尝试的代码如下:

代码语言:javascript
复制
<?php
// Fetch body field content from $pods object
$mycontent = $pods->field('field_body');
$output = apply_filters('oembed_dataparse', $mycontent);
echo $output;
?>

我尝试了各种不同的过滤器,比如the_content和其他过滤器,但似乎都不起作用。我认为这可能是Pod页面的作用域/冲突问题,因为即使将整个iFrame嵌入代码写到模板中也不会起作用,只会显示一个空的iFrame。全局oembed函数执行相同的操作,即

代码语言:javascript
复制
$videourl = 'http://www.youtube.com/watch?v=dQw4w9WgXcQ';
$htmlcode = wp_oembed_get($videourl);
echo $htmlcode;

在页面模板的上下文中将输出:

代码语言:javascript
复制
<iframe width="500" height="375" frameborder="0" allowfullscreen="" src="http://www.youtube.com/embed/dQw4w9WgXcQ?feature=oembed">
    <html>
        <head>
        </head>
        <body>
        </body>
    </html>
</iframe>
EN

回答 2

Stack Overflow用户

发布于 2013-03-26 07:20:47

field()获取字段的值,display()获取字段的输出(通过配置字段运行的任何相关过滤器/函数)。

代码语言:javascript
复制
$mycontent = $pods->field('field_body');

应该是

代码语言:javascript
复制
$mycontent = $pods->display('field_body');

有关更多信息,请参阅http://pods.io/docs/field/http://pods.io/docs/display/

票数 1
EN

Stack Overflow用户

发布于 2013-03-26 06:13:51

调用apply_filters('oembed_dataparse', $mycontent)是不正确的,因为这意味着添加了默认情况下不支持的处理其他数据类型(照片、视频等)的功能。您想要做的是模仿WordPress是如何进行嵌入的。我还没有测试下面的代码,但它似乎是触发嵌入功能的方法:

代码语言:javascript
复制
global $wp_embed;

$mycontent = $pods->field('field_body');

$output = $wp_embed->autoembed($mycontent);

echo $output;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15625174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档