这个问题通常出现在 WordPress 的高版本和使用 ACF 插件时。问题的原因是由于图片文件名内含有特殊字符(比如空格、#、%等),这些字符被解析后会变成“奇怪的字符”。
我们可以通过在上传图片时对其进行一些处理来解决该问题。具体地,我们可以使用 WordPress 提供的sanitize_file_name()函数来将文件名中的特殊字符替换为下划线。代码示例如下:
// 过滤上传的文件名 add_filter('sanitize_file_name', 'custom_sanitize_file_name', 10);
function custom_sanitize_file_name($filename) { // 将文件名中的特殊字符替换为下划线 $sanitized_filename = preg_replace('/[^a-zA-Z0-9-.]/', '', $filename); return $sanitized_filename; }
使用上述代码后,上传的图片名称会被替换为合法的名称,从而避免了出现奇怪的字符的问题。