WordPress как на ладони
wordpress jino

update_attached_file() WP 2.1.0

Обновляет путь прикрепленного файла (вложения) в метаполе "_wp_attached_file". Путь обновляется для указанного ID вложения.

update_attached_file() не перемещает файл, а просто обновляет метаполе _wp_attached_file, обычно, после того, как файл был перемещен.

Эта функция используется внутри wp_insert_post() и обычно отдельно не используется.

В метаполе сохраняется не полный путь от корня сервера, а относительный путь от каталога загрузок.

Возможно вместо этой функции, вам пригодится хук-фильтр update_attached_file - он используется в функции перед тем, как обновить данные в метаполе.

Работает на основе: update_post_meta(), delete_post_meta()
Хуки из функции:
Возвращает

Логические: true при удачном обновлении и false при неудачном.

Использование

update_attached_file( $attachment_id, $file );
$attachment_id(число) (обязательный)
ID прикрепленного файла (вложения).
$file(строка) (обязательный)
Новый путь до файла-вложения, который нужно записать.

Примеры

#1 Пример работы

Допустим мы записали новый файл и нам нужно обновить путь до этого файла, который храниться в метаполе _wp_attached_file.

update_attached_file( $post_ID, $postarr['file'] );

Код update attached file: wp-includes/post.php WP 4.8.2

<?php
function update_attached_file( $attachment_id, $file ) {
	if ( !get_post( $attachment_id ) )
		return false;

	/**
	 * Filters the path to the attached file to update.
	 *
	 * @since 2.1.0
	 *
	 * @param string $file          Path to the attached file to update.
	 * @param int    $attachment_id Attachment ID.
	 */
	$file = apply_filters( 'update_attached_file', $file, $attachment_id );

	if ( $file = _wp_relative_upload_path( $file ) )
		return update_post_meta( $attachment_id, '_wp_attached_file', $file );
	else
		return delete_post_meta( $attachment_id, '_wp_attached_file' );
}
update_attached_file Комментариев нет

Здравствуйте, !

Ваш комментарий