Удаление кешей oEmbed в WordPress
Функция WP_EMBED::DELETE_OEMBED_CACHES()
позволяет удалять все кеши oEmbed. Эта функция была отмечена как неиспользуемая в ядре начиная с версии 4.0.0.
Как работает функция
Сигнатура функции
public function delete_oembed_caches( $post_id ) {
// Код функции
}
Возвращаемое значение
Функция не возвращает ничего (null).
Использование функции
Чтобы использовать эту функцию, вам нужно сделать следующее:
- Импортировать глобальный объект
$wp_embed
. - Вызвать метод
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
:
- Получает все мета-ключи поста по его ID.
- Если мета-ключи отсутствуют, функция просто завершает выполнение.
- Проходит по всем мета-ключам и удаляет те, которые начинаются с префикса
_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. Эта функция может быть полезна, например, когда вы изменяете содержимое поста и хотите убедиться, что оно отображается корректно. Используйте представленные примеры кода, чтобы упростить интеграцию этой функции в ваше приложение.