Переименовать файлы после сохранения страницы - ACF front end - PullRequest
0 голосов
/ 12 марта 2019

Я использую интерфейсную часть 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  );
...