WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Добавить в название файла его ID и ID поста

Есть возможность изменять имена загружаемых файлов и присваивать им нужные значения

ВОПРОС: как добавить к имени файла его же ID и ID поста, куда врезаться ??
пример, было
image.jpg
нужно
image-p999-att777.jpg

Данная необходимость возникла для быстрого поиска постов по именам вложенных файлов - при обращении к сайту более 200 человек и поиску поста по имени файла, возникает большая нагрузка. Хочу искать файлы путем извлечения ID из имени файла

ранее юзал код для рандома имен, но его функционала стало мало

    /****[022] Automatic rename */
		function shapeSpace_maybe_append_random($filename) {
			$random = substr(str_shuffle('1234567890'), 0, 8);
			$append = apply_filters('usp_file_append_random', true, $filename, $random);

			if (!$append) return $filename;

			$info = pathinfo($filename);
			$ext  = (isset($info['extension']) && !empty($info['extension'])) ? '.'. $info['extension'] : '';
			$name = basename($filename, $ext) . $random;

			return $name . $ext;

		}
		add_filter('sanitize_file_name', 'shapeSpace_maybe_append_random', 10);

// ещё можно так
add_filter( 'wp_handle_upload_prefilter', 'custom_upload_filter' );
function custom_upload_filter( $file ) {
	if ( ! isset( $_REQUEST['post_id'] ) ) {
		return $file;
	}
	$id           = intval( $_REQUEST['post_id'] );
	$parent_post  = get_post( $id );
	$post_name    = sanitize_title( $parent_post->post_title );
	$file['name'] = $post_name . '-' . $file['name'];
	return $file;
}

Добавить ID родителя легко, а вот ID вложения так и не нашёл

$_REQUEST['post_id']

Заметки к вопросу:
mi13 месяц назад

Это файлы которые загружаешь прямо со страницы записи?

kolshix месяц назад

Да, верно

mi13 месяц назад

get_post_thumbnail_id() есть

0
kolshix
месяц назад 707
  • 0
    Andrew475 america-xix.ru

    В момент загрузки файла ID вложения не получить, поскольку оно создается только при успешном завершении записи файла на диск.

    Можно переименовать файл после, заменив всю необходимую информацию в скрытых полях записи-вложения

    kolshix месяц назад

    Уже спрашивал до этого но не получил ответ :
    Как в вордпрес узнать формирование (значение) id будущего вложения, поста или таксономии - может быть тут бы и помогло в вопросе.

    Andrew месяц назад

    при создании записи WordPress пользуется функцией get_default_post_to_edit( $post_type, $create_in_db )

    При $create_in_db, установленном в true, CMS стандартной функцией wp_insert_post() добавляет в базу данных новую запись со статусом "auto-draft" и возвращает полученный ID.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация