我设置了一个自定义的元框,允许用户粘贴视频的Youtube URL,以便将其嵌入到帖子/页面中。
元框可以重复,以便用户可以根据自己的意愿添加尽可能少或多的URL,因此我使用此代码段将每个URL显示为列表项;
<?php
$video = get_post_meta($post->ID, \'youtube-url\');
foreach ($video as $vid) {
echo \'<li>\'.$vid.\'</li>\';
}
?>
有没有办法让我跑
the_content
过滤每个单独的列表项,以便我可以使用Wordpress附带的oEmbed?
或者也许有一种更有效的方法。。。
最合适的回答,由SO网友:s_ha_dum 整理而成
你需要做的就是使用apply_filters
.
foreach ($video as $vid) {
echo \'<li>\'.apply_filters(\'the_content\',$vid).\'</li>\';
}
串联一个字符串,然后在整个过程中运行过滤器,可能会更有效。
$lis = \'\';
foreach ($video as $vid) {
$lis .= \'<li>\'.$vid.\'</li>\';
}
echo apply_filters(\'the_content\',$lis);
我还没有对一个与另一个进行基准测试,但考虑到后者只调用了一次过滤器,而前者调用了很多次,我打赌是后者。