将内容筛选器应用于具有多个值的自定义字段(_C)

时间:2013-06-19 作者:Poisontonomes

我设置了一个自定义的元框,允许用户粘贴视频的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?

或者也许有一种更有效的方法。。。

1 个回复
最合适的回答,由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);
我还没有对一个与另一个进行基准测试,但考虑到后者只调用了一次过滤器,而前者调用了很多次,我打赌是后者。

结束

相关推荐

Too many actions/filters!

这里是wordpress的新成员。动作/过滤器的概念本身并不难理解。令我不知所措的是大量可用的操作和过滤器。当我阅读教程/指南时,他们会说“只需将此功能添加到wp\\U head操作或after\\U setup\\u主题”。如果没有这些教程,我究竟如何知道将该函数与该操作挂钩?作为一个初学者,我怎么会知道什么是合适的操作?有没有关于如何导航的建议?谢谢