我不擅长WP编程,但我试图了解如何在我的站点中启用SVG。我发现需要在下面添加函数functions.php
:
/**
* Add SVG capabilities
*/
function wpcontent_svg_mime_type( $mimes = array() ) {
$mimes[\'svg\'] = \'image/svg+xml\';
$mimes[\'svgz\'] = \'image/svg+xml\';
return $mimes;
}
add_filter( \'upload_mimes\', \'wpcontent_svg_mime_type\' );
wpcontent
应替换为命名空间。但如何知道我的WP名称空间是什么?
将下面的行添加到.htaccess
行后的文件,#End WordPress
:
# Add SVG Mime Types
AddType image/svg+xml svg
AddType image/svg+xml svgz
还有什么我该做的吗?
UPD。完成此程序后,iI应具有以下内容:
现在我可以上传文件到媒体,但没有预览。当我插入时,什么都没有发生-没有新图片。
如何解决这个问题?
SO网友:chrisguitarguy
但如何知道我的WP名称空间是什么?
在WP-land中,给函数命名只意味着在其前面加上一些使其更独特且不可能与其他任何内容冲突的前缀。一般来说,这意味着你同时做“供应商”和“包装”。例如,如果我正在构建一个插件,我的函数upload mimes函数可能是。。。
add_filter(\'upload_mimes\', \'chrisguitarguy_pluginname_mimes\');
function chrisguitarguy_pluginname_mimes($mimes)
{
// ...
}
在哪里
chrisguitarguy
是我的“供应商”名称和
pluginname
是包裹。你可以这样做
PHP namespaces 也
namespace Chrisguitarguy\\PluginName;
add_action(\'upload_mimes\', __NAMESPACE__.\'\\\\mimes\');
function mimes($mimes)
{
// ...
}
还有什么我该做的吗?
不,你所拥有的是完美的。您可能希望在.htaccess
.
AddType image/svg+xml .svg .svgz
// http://httpd.apache.org/docs/2.2/mod/mod_mime.html#addencoding
AddEncoding gzip svgz
apache的较新版本默认情况下可能包含此配置?