wp_maybe_generate_attachment_metadata() WP 3.9.0

Створює метадані вкладення, якщо вони відсутні, інакше нічого не робить.

Функція додасть метадані метаполя (див. wp_update_attachment_metadata() ), тільки якщо:

Хуків немає.

Повертає

null. Нічого.

Використання

wp_maybe_generate_attachment_metadata( $attachment );
$attachment
(WP_Post) (обов’язковий)
Об’єкт вкладення, метаданий якого потрібно згенерувати.

Приклади

0

#1 Генерація метаданих вкладення

Цей приклад показує, як створити метадані для доданого до медіатеки файлу. Передбачається, що метадані з якоїсь причини були створені автоматично (зазвичай вони створюються автоматом). Якщо дані вже існують (функція wp_get_attachment_metadata() щось повертає), то функція нічого не зробить.

$ attachment = get_post (123);
wp_maybe_generate_attachment_metadata( $attachment );

список змін

З версії 3.9.0Введено.

Код wp_maybe_generate_attachment_metadata() WP 6.0.2

function wp_maybe_generate_attachment_metadata( $attachment ) {
	if ( empty( $attachment ) || empty( $attachment->ID ) ) {
		return;
	}

	$attachment_id = (int) $attachment->ID;
	$ file = get_attached_file ($ attachment_id);
	$meta = wp_get_attachment_metadata( $attachment_id );

	if ( empty( $meta ) && file_exists( $file ) ) {
		$_meta = get_post_meta($attachment_id);
		$_lock = 'wp_generating_att_'. $attachment_id;

		if ( ! array_key_exists( '_wp_attachment_metadata', $_meta ) && ! get_transient( $_lock ) ) {
			set_transient($_lock, $file);
			wp_update_attachment_metadata( $attachment_id, wp_generate_attachment_metadata( $attachment_id, $file ) );
			delete_transient($_lock);
		}
	}
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *