我不是百分之百确定,但这个问题似乎与unfiltered_html
能力限制。
未筛选的html
自2.0以来,用户可以在页面、帖子和评论中发布HTML标记甚至JavaScript代码注意:为不受信任的用户启用此选项可能会导致他们发布恶意或格式错误的代码一个简单的修复方法(即使不是功能问题,也可能是一个解决方案)是制作一个短代码来处理对象插入。
此示例用于插入SoundCloud iframe,但很容易适应对象标记。
add_shortcode(\'soundcloud\', \'soundcloud_shortcode_maker\');
function soundcloud_shortcode_maker($atts, $content = null) {
$output = \'<iframe width="\'.$atts[\'width\'].\'" height="\'.$atts[\'height\'].\'" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=\'.urlencode($atts[\'url\']).\'&\'.myUrlEncode($atts[\'params\']).\'"></iframe>\';
return $output;
}
function myUrlEncode($string) {
$entities = array(\'%21\', \'%2A\', \'%27\', \'%28\', \'%29\', \'%3B\', \'%3A\', \'%40\', \'%26\', \'%3D\', \'%2B\', \'%24\', \'%2C\', \'%2F\', \'%3F\', \'%25\', \'%23\', \'%5B\', \'%5D\');
$replacements = array(\'!\', \'*\', "\'", "(", ")", ";", ":", "@", "&", "=", "+", "$", ",", "/", "?", "%", "#", "[", "]");
return str_replace($entities, $replacements, urlencode($string));
}
功能
myUrlEncode
只是这个特定SoundCloud案例中的一个助手,但我将把它留在这里以防万一。。。