过滤除短码输出外的所有内容

时间:2013-04-17 作者:byronyasgur

是否可以过滤内容或摘录的输出,以便我只获得短代码输出,并且如果用户输入的短代码多于该短代码,则该页面的其余内容将被删除。

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

function shortcode_only_wpse_96114($content) {
  $regex = get_shortcode_regex();
  preg_match_all(\'/\'.$regex.\'/\',$content,$matches);
  if (!empty($matches[0])) {
    $content = do_shortcode(implode(\' \',$matches[0]));
  }
  return $content;
}
add_filter(\'the_content\',\'shortcode_only_wpse_96114\',1);
这应该检查是否有任何注册的短代码,如果存在,则用短代码的输出完全替换帖子内容,删除任何其他内容。如果没有找到短码,则post内容将正常返回。

几乎未经测试。可能是马车排空警告不退款。

参考文献

http://codex.wordpress.org/Function_Reference/get_shortcode_regex

结束

相关推荐

Wrap text around shortcode

我在插件中使用了一个短代码处理程序。短代码可以有不同的(可选)参数。例如,可以在静态WordPress页面上使用两个短代码,在短代码之前、之间和之后都有文本。例如: Lorem ipsum dolor sit amet, consetetur sadipscing elitr <table> <tr> <td>[shortcode option=\"1\"]</td>&#