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