WP_MAYBE_GENERATE_ATTACHMENT_METADATA() в WordPress: обзор, использование и примеры

WP_MAYBE_GENERATE_ATTACHMENT_METADATA() │ WP 3.9.0

Функция WP_MAYBE_GENERATE_ATTACHMENT_METADATA() может попытаться создать метаданные для вложения, если такие метаданные отсутствуют.

Использование функций

Эта функция использует несколько других функций для своей работы:

  • get_attached_file()
  • wp_get_attachment_metadata()
  • wp_update_attachment_metadata()
  • wp_generate_attachment_metadata()

Нет хуков

Функция не имеет хуков.

Возвращаемое значение

Функция ничего не возвращает (null).

Применение

Функция вызывается с помощью следующего синтаксиса:

wp_maybe_generate_attachment_metadata( $attachment );
  • $attachment(WP_Post) (обязательный) — объект вложения.

Примеры использования

Пример 1: Генерация метаданных для вложения

Этот пример показывает, как создать метаданные для файла, добавленного в медиатеку. Предполагается, что метаданные не были созданы автоматически. Обычно они создаются автоматически. Если данные уже существуют (если функция wp_get_attachment_metadata() возвращает что-то), функция просто ничего не сделает.

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

История изменений

  • С версии 3.9.0: функция была введена.

Код функции

Ниже приведён код функции wp_maybe_generate_attachment_metadata:

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 );
    }
}

}

Связанные функции

Вот некоторые функции, которые могут быть полезны при работе с метаданными:

  • delete_post_meta_by_key()
  • wp_generate_attachment_metadata()
  • wp_get_attachment_metadata()
  • wp_read_audio_metadata()
  • wp_update_attachment_metadata()

Эта информация может помочь вам лучше понять, как работает функциональность метаданных вложений в WordPress и как использовать функцию WP_MAYBE_GENERATE_ATTACHMENT_METADATA() для вашей работы.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *