使用‘MEDIA_HANDLE_UPLOAD’重命名图像文件名

时间:2018-09-26 作者:Marcelo Henriques Cortez

我需要重命名用户在我的网站上发布时上传的图像。

我有一个代码,可以完美地保存图像并将其作为帖子的一部分。但我希望这些图片被重命名,在其文件名中包含帖子的标题。

我拥有的代码:

require_once( ABSPATH . \'wp-admin/includes/image.php\' );
require_once( ABSPATH . \'wp-admin/includes/file.php\' );
require_once( ABSPATH . \'wp-admin/includes/media.php\' );
$img_id01 = media_handle_upload( \'img_main\', $postID );
update_post_meta($postID, \'img_id01\', $img_id01);

1 个回复
SO网友:Hans

我无法对此进行测试,因为我没有您的代码,但也许您可以从中获得一些想法:

add_filter( \'wp_unique_filename\', \'custom_image_name\', 10, 2 );
$img_id01 = media_handle_upload( \'img_main\', $postID );
remove_filter( \'wp_unique_filename\', \'custom_image_name\', 10, 2 );

function custom_image_name( $filename, $ext ) {

    global $postID;
    $post = get_post( $postID );
    return $filename . \'-\' . $post->post_name . $ext;
}
这不是很优雅,因为$postID 需要在全局范围内,但它可能会起作用。

结束

相关推荐

Organizing media uploads

我的一个客户想把他的WordPress网站转移到我的服务器上。问题是他的网站没有在他的上传文件夹中使用子文件夹,而他上传文件夹的根目录中有超过1000000个文件。有没有一种方法可以将他的所有帖子上传到文件夹中,而不会丢失帖子中的附加链接和特色图片?