帮助添加过滤器(‘The_Content’,‘Some_Function’)和多个匹配

时间:2011-09-09 作者:lowe_22

我有一个网站,用户可以通过在内容框中输入快捷码将幻灯片插入帖子。他还可以通过在同一个框中添加视频代码来添加视频。我需要将这两个短代码彼此分离,以便可以控制何时显示幻灯片以及何时显示视频。我正在使用add\\u filter和preg\\u match来匹配正确的短代码,然后回显每个匹配-但是它当前只显示每个匹配中的第一个匹配。这是我的代码-我不确定我是否完全理解add\\u filter的工作原理,因此我的显示方法可能有误:

视频:

/* VIDEO SLICE */
function video_slice( $content ){
    preg_match( \'/\\[video.*\\]/\' , $content , $matches );
    if( isset( $matches ) && $matches !== "" ){
        foreach( $matches as $match ){
            return $match;
        }
    }
}

if( !has_filter(\'the_content\') ){
  add_filter( \'the_content\',\'video_slice\');   
}else{
  remove_filter(\'the_content\',\'slidedeck_slice\');
  add_filter( \'the_content\', \'video_slice\');  
}
the_content();
我有一个类似的幻灯片设置,除了我的slideshow\\u slice函数匹配[SlideDeck .*] 相反如何循环遍历匹配数组并通过the_content()?

谢谢

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

如果你不想要普通的短代码机制(从你的描述中我觉得是这样),为什么还要费心把它们添加到内容中呢?

创建两个专门的元框,您就不必再进行扫描和筛选,只需在自定义字段中单独存储/检索所需的信息。

结束

相关推荐

调用Function_Exist()比调用Apply_Filters()快还是慢

调用函数\\u exists()时,应用\\u filters()的速度是快还是慢。。。还是差异太小,不应该考虑?我在Kaiser的基础上做了一些测试,结果表明,在同时存在函数和过滤器的情况下,function\\u exists()的速度大约是3倍。如果过滤器不存在,速度将提高约11倍。没想到会这样。function taco_party() { return true; } add_filter( \'taco-party\', \'taco_party\'