Удаление кешей oEmbed в WordPress: полное руководство

Удаление кешей oEmbed в WordPress

Функция WP_EMBED::DELETE_OEMBED_CACHES() позволяет удалять все кеши oEmbed. Эта функция была отмечена как неиспользуемая в ядре начиная с версии 4.0.0.

Как работает функция

Сигнатура функции

public function delete_oembed_caches( $post_id ) {
    // Код функции
}

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

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

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

Чтобы использовать эту функцию, вам нужно сделать следующее:

  1. Импортировать глобальный объект $wp_embed.
  2. Вызвать метод delete_oembed_caches, передав ID записи (поста), для которого вы хотите удалить кеш.

Пример кода

global $wp_embed;
$wp_embed->delete_oembed_caches( $post_id );

где $post_id — это ID вашего поста, для которого нужно удалить кеш.

Пример удаления кеша oEmbed для конкретного поста

$post_id = 8045;

// Просмотр мета-данных до удаления
print_r( get_post_meta( $post_id ) );

// Удаление кеша
$GLOBALS['wp_embed']->delete_oembed_caches( $post_id );

// Просмотр мета-данных после удаления
print_r( get_post_meta( $post_id ) );

Как работает функция?

Вот как именно работает метод delete_oembed_caches:

  1. Получает все мета-ключи поста по его ID.
  2. Если мета-ключи отсутствуют, функция просто завершает выполнение.
  3. Проходит по всем мета-ключам и удаляет те, которые начинаются с префикса _oembed_.

Код функции

public function delete_oembed_caches( $post_id ) {
    $post_metas = get_post_custom_keys( $post_id );
    if ( empty( $post_metas ) ) {
        return;
    }

    foreach ( $post_metas as $post_meta_key ) {
        if ( str_starts_with( $post_meta_key, '_oembed_' ) ) {
            delete_post_meta( $post_id, $post_meta_key );
        }
    }
}

Другие связанные функции

Эта функция связана с несколькими другими функциями в WordPress, связанными с oEmbed и кешированием:

Для oEmbed

  • get_oembed_response_data_for_url()
  • get_post_embed_html()
  • get_post_embed_url()
  • is_embed()
  • wp_embed_register_handler()
  • wp_get_audio_extensions()
  • wp_get_video_extensions()
  • wp_oembed_add_provider()
  • wp_oembed_get()

Для кеширования объектов

  • _prime_post_caches()
  • clean_comment_cache()
  • clean_post_cache()
  • clean_user_cache()
  • wp_cache_add()
  • wp_cache_delete()
  • wp_cache_flush()

Заключение

Функция WP_EMBED::DELETE_OEMBED_CACHES() является полезным инструментом для удаления кеша oEmbed в WordPress. Эта функция может быть полезна, например, когда вы изменяете содержимое поста и хотите убедиться, что оно отображается корректно. Используйте представленные примеры кода, чтобы упростить интеграцию этой функции в ваше приложение.

Leave a Reply

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