Как навсегда удалить запись метаданных?

delete_post_meta, похоже, просто очищает значение для заданного мета-ключа. Это действительно не полностью удаляет строку. Я много копал, но я не могу найти никакой функции, которая полностью удаляет запись метаданных.

Пожалуйста, может ли кто-нибудь указать мне в правильном направлении? Должен ли я использовать $wpdb для $wpdb удаления строки или есть ли спрятанная функция, чтобы сделать это для меня?

Редактировать:

Было проверено следующее: оно работает, но использует $wpdb . Это правильный способ сделать это?

 $wpdb->delete( $wpdb->postmeta, array( 'post_id' => 744, 'meta_key' => 'referrers' ), array( '%d', '%s' ) ); 

Edit2:

Вот мой старый код:

 // $post_id contains an integer value // $referrers contains an array $referrers = get_post_meta( $post_id, 'referrers', true ); for ( $i = 0; $i < count( $referrers ); $i++ ) { delete_post_meta( $post_id, "referrers_{$i}_contact_id" ); delete_post_meta( $post_id, "_referrers_{$i}_contact_id" ); delete_post_meta( $post_id, "referrers_{$i}_rule" ); delete_post_meta( $post_id, "_referrers_{$i}_rule" ); delete_post_meta( $post_id, "referrers_{$i}_amount" ); delete_post_meta( $post_id, "_referrers_{$i}_amount" ); } 

Вышеизложенное работает, но оно просто очищает ценности. Я использую неправильно? Я что-то пропустил случайно?

Solutions Collecting From Web of "Как навсегда удалить запись метаданных?"

delete_post_meta will удалит мета-строку. delete_post_meta также использует класс wpdb для удаления мета строк. Вы можете показать нам полный код.

Для вашей информации delete_post_meta выполняет следующую команду mysql

 DELETE FROM wp_postmeta WHERE meta_id IN( "85" ); 

через функцию delete_metadata . meta_id 85 приводится только для примера. Это динамично. поэтому вам не нужно запускать свои собственные запросы mysql, чтобы избежать ошибок и угроз безопасности.

ПРИМЕЧАНИЕ. У меня недостаточно репутации для комментариев, поэтому даю это сообщение как ответ.