WP - renommer images uploadées en fonction du nombre de posts (A-0001)
<?php
function get_leading_zero_int($num){
if($num < 10){
$prefix = '000';
} elseif($num < 100){
$prefix = '00';
} elseif($num < 1000){
$prefix = '0';
} else {
$prefix = '';
}
return $prefix;
}
add_filter('sanitize_file_name', 'extended_sanitize_file_name' );
function extended_sanitize_file_name( $filename ) {
global $letters;
$sanitized_filename = remove_accents( $filename );
if( isset($_POST['upload_image']) && !empty($_POST['upload_image']) && isset($_POST['lettre']) ){
// Récupération du nombre de post pour chaque lettre
$args = array(
'post_type' => 'galerie',
'posts_per_page' => -1
);
$query_galerie = new WP_Query( $args );
foreach($letters as $letter){
$galerie_posts[strtoupper($letter['letter'])] = array();
}
while ( $query_galerie->have_posts() ) {
$query_galerie->the_post();
$lettre = strtoupper(get_field('lettre'));
$galerie_posts[$lettre][] = get_the_ID();
}
wp_reset_postdata();
// Définition du nom du fichier
$info = pathinfo( $filename );
$ext = empty( $info['extension'] ) ? '' : '.' . $info['extension'];
$lettre = strtoupper($_POST['lettre']);
$countLetters = count($galerie_posts[$lettre]) + 1;
return $lettre.'-'.get_leading_zero_int($countLetters).$countLetters.$ext;
}
return ConvertIntoFilename($sanitized_filename);
}