我有一个内嵌SVG标记,带有嵌入的<;使用(>);标签
HTML:
<ul>
<li><svg class="icon-user"><use xlink:href="#icon-user"></use></svg> My Account</li>
</ul>
我创建了一个过滤器函数来强制微型MCE编辑器不使用SVG标记。代码改编自post:
use of <svg> tag into wordpress.
Filter function:
add_filter( \'tiny_mce_before_init\', \'fb_tinymce_add_pre\' );
function fb_tinymce_add_pre( $initArray ) {
// Command separated string of extended elements
$ext = \'svg[preserveAspectRatio|class|style|version|viewbox|xmlns],defs,use[xlink:href|x|y],linearGradient[id|x1|y1|z1]\';
if ( isset( $initArray[\'extended_valid_elements\'] ) ) {
$initArray[\'extended_valid_elements\'] .= \',\' . $ext;
} else {
$initArray[\'extended_valid_elements\'] = $ext;
}
// maybe; set tiny paramter verify_html
//$initArray[\'verify_html\'] = false;
return $initArray;
}
我修改了发布的解决方案,添加了SVG类、USE标记及其XLINK:HREF、X和Y参数。
问题是xlink:href参数被错误解释,导致在编辑器中切换到可视模式时代码被破坏。
HTML before switch to visual mode:
<svg class="icon-user"><use xlink:href="#icon-user"></use></svg>
HTML after switch to visual mode:
<svg class="icon-user"><use xlink="href"></use></svg>
我试过在
xlink:href
函数参数如下:
xlink\\:href
, 尝试了冒号的编码值,如下所示:
xlink%3Ahref
用引号括起来
"xlink:href"
但一切都失败了。
我知道你可以使用HTML5标记嵌入svg,但如果我能得到一个持久的解决方案,我想尝试这种方法。