所以我使用了这个函数,它允许我在上传时更改目录中的文本文件名。但是,它实际上不会更改文件名,因此在附加到帖子时会将slug更改为ID。
例如,我上传了一个文件名为“Grumpy Cat Ate Nemo”的文件,由于该函数,它将更改为ID“89”。但它实际上并没有改变WordPress数据库中的文件名,所以即使文件重命名为ID,它在WordPress上仍然是“Grumpy Cat Ate Nemo.png”。
我希望帖子的附件url为http://example.com/grumpy-cat/89, 不http://example.com/grumpy-cat/Grumpy-Cat-Ate-Nemo
add_action(\'add_attachment\', \'rename_attacment\');
function rename_attacment($post_ID){
$post = get_post($post_ID);
$file = get_attached_file($post_ID);
$path = pathinfo($file);
//dirname = File Path
//basename = Filename.Extension
//extension = Extension
//filename = Filename
$newfilename = $post_ID;
$newfile = $path[\'dirname\']."/".$newfilename.".".$path[\'extension\'];
rename($file, $newfile);
update_attached_file( $post_ID, $newfile );
}
SO网友:pLiKT
这个add_attachment
命名附件后调用操作。如果只想更改附件(和slug)的名称,则无需更改文件名,只需替换其中的代码即可rename_attachment
打电话给wp_update_post
.
add_action(\'add_attachment\', \'rename_attacment\');
function rename_attacment($post_ID){
$new_attachment_name = array(
\'ID\' => $post_ID,
\'post_title\' => $post_ID, // changes what you see
\'post_name\' => $post_ID // changes the slug to 89
);
wp_update_post($new_attachment_name);
}