就像标题所说,我正在尝试将媒体库上传重命名为文件添加到的初始帖子的标题。
我找到了以下功能并修改了它以将文件名更改为文件的作者slug
/attachments
然而,这对客户来说还不够好。我还没有在网上找到任何解决方案。任何帮助将不胜感激!
编辑 - 只想添加我也在使用高级自定义字段。以下是此过程的其余代码,它将特定的自定义字段图像定向到某个目录 -
// file renamer (used for EDL images)
function file_renamer( $filename ) {
$info = pathinfo( $filename );
$ext = empty( $info['extension'] ) ? '' : '.' . $info['extension'];
$name = basename( $filename, $ext );
global $current_user;
get_currentuserinfo();
return $current_user->user_login . $ext;
}
答案 0 :(得分:0)
我想您可以查看$_POST["post_ID"]
,使用WP的get_post()
,然后如果找到了帖子,请为文件名调用get $post->post_title
。
或者ACF是否通过Ajax异步上传?在任何情况下,邮件ID都应该在上传时传输,我相信,但您可能需要查看浏览器的开发人员工具以找出字段名称。
以下在我的安装中有效。请注意,这将适用于所有文件上传,因此您可能需要添加一些预防措施。
function file_renamer( $filename ) {
$info = pathinfo( $filename );
$ext = empty( $info['extension'] ) ? '' : '.' . $info['extension'];
$name = basename( $filename, $ext );
if( $post_id = array_key_exists("post_id", $_POST) ? $_POST["post_id"] : null) {
if($post = get_post($post_id)) {
return $post->post_title . $ext;
}
}
get_currentuserinfo();
return $current_user->user_login . $ext;
}
add_filter( 'sanitize_file_name', 'file_renamer', 10, 1 );