Я использую интерфейсную часть acf_form () для своей задачи, и мне нужно переименовать файлы после сохранения страницы с префиксным именем, которое соответствует ее полю. Таким образом, $ newfilename теперь имеет префикс «1_1», и я потяну несколько дней, чтобы получить префикс «2_1» и для группы 2. Я пробовал много способов, но имя файла все равно будет одинаковым префиксом для группы 1 и группы 2. (очевидно, в этом коде)
Я думал добавить префикс имени к атрибутам Wrapper для добавления файла 1 (тип повторителя) и добавления файла 2 (тип повторителя), но я не могу заставить его работать. У кого-нибудь есть идеи по решению проблемы? Спасибо
Это моя структура ACF:
group1 (type group)
--add file 1 (type repeater)
----add a new file ( type file) // Prefix name should be 1_1_file_name
group2 (type group)
--add file 2 (type repeater)
----add a new file ( type file) // Prefix name should be 2_1_file_name
Это мой код:
function rename_filename( $post_id ) {
$arg = array(
'post_type' => 'attachment',
'post_id' => $post_id,
);
$getPost = get_posts($arg);
foreach ($getPost as $key => $value) {
$attachmentID = $value->ID;
$file = get_attached_file($attachmentID);
$path = pathinfo($file);
//dirname = File Path
//basename = Filename.Extension
//extension = Extension
//filename = Filename
$newfilename = '1_1_'.$value->post_name;
$newfile = $path['dirname']."/".$newfilename.".".$path['extension'];
update_attached_file( $attachmentID, $newfile );
$attachmentAgrs = array(
'ID' => $attachmentID,
'post_title' => $newfilename,
'guid' => wp_upload_dir()['url'].'/'.$newfilename.'.'.$path['extension'],
);
wp_update_post( $attachmentAgrs );
}
}
add_action( 'acf/save_post', array($this, 'rename_filename'), 12, 1 );