在WordPress媒体库中自动上传文件时,将(-)和(转义)符号转换为(_)

时间:2018-09-17 作者:Samuel

出于内部目的,我正在寻找在WordPress媒体库上上传文件(照片、视频、音频)时自动将(-)和(转义)签名转换为(_u)。

Example:

如果我尝试上载这2个文件:

网络图片。png网络音频。mp3我想在wordpress媒体库中获得这两个文件的结果:

wp内容/上传/2018/09/network\\u图片。jpg内容/上传/2018/09/web\\U音频。mp3现在,如果我们上传一个带有(escape)的文件,如(web audio.mp3) 您将得到以下结果:

  • wp-content/uploads/2018/09/web-audio.mp3
1 个回复
SO网友:Krzysiek Dróżdż

您可以使用sanitize_file_name 钩住这个。

function my_sanitize_file_name( $filename ) {
    $chars_table = array(
        \' \' => \'_\',
        \'-\' => \'_\',
    );

    $friendly_filename = preg_replace( array_keys( $chars_table ), array_values( $chars_table ), $filename );

    return strtolower( $friendly_filename );
}
add_filter( \'sanitize_file_name\', \'my_sanitize_file_name\', 10 );
它还将字母转换为小写,以避免在区分大小写的服务器上发生冲突。

结束

相关推荐

如何在自定义的PHP文件中使用GET_BLOGINO(‘ADMIN_Email’)?

我如何使用get_bloginfo(\'admin_email\') 在位于父主题根目录中的自定义PHP文件中?我已经分别构建了一个自定义表单和一个PHP邮件脚本,但现在我想用密件抄送将表单数据发送到WP Admin电子邮件地址。 $headers = \"MIME-Version: 1.0\" . \"\\r\\n\"; $headers .= \"Content-type:text/html;charset=UTF-8\" . \"\\r\\n\"; $heade