Функция delete_post_thumbnail()
позволяет удалить миниатюру (изображение записи) из указанной записи в WordPress. Она удаляет привязку миниатюры к записи, не удаляя сам файл изображения. Это полезно, если нужно удалить только ссылку на миниатюру, а не физически удалять файл.
delete_post_thumbnail( int|WP_Post $post ): bool
Параметры:
$post
(int|WP_Post, обязательный) — ID записи или объект записи, из которой нужно удалить миниатюру.
Возвращаемое значение:
true
— если операция прошла успешно.false
— если произошла ошибка (например, если миниатюра не была установлена).
Описание
Функция delete_post_thumbnail()
удаляет метаполе, которое связывает миниатюру с записью. Важно отметить, что сам файл изображения не удаляется — для этого следует использовать функцию wp_delete_attachment()
. Эта функция работает только с метаданными записи.
Пример 1: Удаление миниатюры по ID записи
Допустим, у записи с ID 101 есть установленная миниатюра. Для того чтобы удалить ее, можно использовать следующий код:
delete_post_thumbnail( 101 );
Этот код удалит привязку миниатюры к записи с идентификатором 101.
Пример 2: Удаление миниатюры с использованием объекта записи
Если у вас есть объект записи, вы также можете передать его в функцию:
$post = get_post( 202 );
delete_post_thumbnail( $post );
В этом примере миниатюра удаляется из записи, представленной объектом $post
с ID 202.
Пример 3: Проверка перед удалением миниатюры
Прежде чем удалить миниатюру, можно проверить, установлена ли она для записи:
$post_id = 303;
if ( has_post_thumbnail( $post_id ) ) {
delete_post_thumbnail( $post_id );
echo 'Миниатюра успешно удалена.';
} else {
echo 'У этой записи нет миниатюры.';
}
Здесь мы сначала проверяем, существует ли миниатюра для записи с ID 303, и только затем удаляем ее.
Пример 4: Удаление миниатюры и удаление самого файла изображения
Если вам нужно не только удалить миниатюру, но и физически удалить файл изображения, вы можете использовать wp_delete_attachment()
:
$post_id = 404;
$thumbnail_id = get_post_thumbnail_id( $post_id );
if ( delete_post_thumbnail( $post_id ) ) {
wp_delete_attachment( $thumbnail_id, true ); // Удаляет файл миниатюры
echo 'Миниатюра и файл успешно удалены.';
} else {
echo 'Не удалось удалить миниатюру.';
}
Этот код удаляет миниатюру записи с ID 404, а затем удаляет сам файл изображения из медиатеки.
Пример 5: Удаление миниатюры для нескольких записей
Если нужно удалить миниатюры для нескольких записей, это можно сделать с помощью цикла:
$post_ids = array(505, 606, 707);
foreach ( $post_ids as $post_id ) {
if ( delete_post_thumbnail( $post_id ) ) {
echo "Миниатюра для записи с ID $post_id успешно удалена.<br>";
} else {
echo "Не удалось удалить миниатюру для записи с ID $post_id.<br>";
}
}
Этот код проходит по массиву ID записей и удаляет миниатюры для каждой из них.
Заключение
Функция delete_post_thumbnail()
— это удобный инструмент для удаления миниатюр записей в WordPress. Она проста в использовании и позволяет управлять миниатюрами без необходимости удалять физические файлы изображений. Если вам нужно удалить файл изображения, для этого можно использовать функцию wp_delete_attachment()
.