wp_delete_comment() WP 2.0.0

Видаляє або поміщає в кошик коментар за вказаним ID.

Якщо кошик вимкнено, коментар буде видалено назавжди, другий параметр ( $force_delete ) стає непотрібним.

Використовує wp_trash_comment() , якщо корзина увімкнена і другий параметр не true.

Хуки з функції
wp_delete_comment( $comment_id, $force_delete );
$comment_id
(число) (обов’язковий)
ID коментаря, який потрібно видалити.
$force_delete
(логічний)
Примусове вилучення. Якщо потрібно видалити коментар, не ставлячи його в кошик, ставимо true.


Типово: false

Приклади

0

#1 Видалення коментарів у WordPress

Видалимо коментар 457 і виведемо повідомлення у разі успіху “коментар 457 видалено!”:

$ id = 457; $tt = wp_delete_comment( $id, true ); // видаляємо повз кошик if( $tt ) echo "Коментар $id видалено!";
0

#2 Видалення коментарів у кошик

Помістимо коментар 457 в кошик (за умови, що кошик не вимкнений):

$ id = 457; $tt = wp_delete_comment($id); if( $tt ) echo "Коментар $id поміщений у кошик!";

нотатки

  • Global. wpdb. $wpdb WordPress database abstraction object.

список змін

З версії 2.0.0Введено.

Код wp_delete_comment() WP 6.0.2

function wp_delete_comment( $comment_id, $force_delete = false ) { Global $wpdb; $ comment = get_comment ($ comment_id); if ( ! $comment ) { return false; } if ( ! $force_delete && EMPTY_TRASH_DAYS && ! in_array( wp_get_comment_status( $comment ), array( 'trash', 'spam' ), true ) ) { return wp_trash_comment( $comment_id ); } /** * Fires immediately before a comment is deleted from the database. * * @ Since 1.2.0 * @since 4.9.0 Added `$comment` parameter. * * @param string $comment_id Коментарі ID як numeric string. * @param WP_Comment $comment Позначити коментар. */ do_action( 'delete_comment', $comment->comment_ID, $comment ); // Move children up a level. $children = $wpdb->get_col( $wpdb->prepare( "SELECT comment_ID FROM $wpdb->comments WHERE comment_parent = %d", $comment->comment_ID ) ); if ( ! empty( $children ) ) { $wpdb->update( $wpdb->comments, array( 'comment_parent' => $comment->comment_parent ), array( 'comment_parent' => $comment->comment_ID ) ); clean_comment_cache($children); } // Delete metadata. $meta_ids = $wpdb->get_col( $wpdb->prepare( "SELECT meta_id FROM $wpdb->commentmeta WHERE comment_id = %d", $comment->comment_ID ) ); foreach ( $meta_ids as $mid ) { delete_metadata_by_mid( 'comment', $mid ); } if ( ! $wpdb->delete( $wpdb->comments, array( 'comment_ID' => $comment->comment_ID ) ) ) { return false; } /** * Fires immediately after a comment is deleted from the database. * * @ Since 2.9.0 * @since 4.9.0 Added `$comment` parameter. * * @param string $comment_id Коментарі ID як numeric string. * @param WP_Comment $comment Deleted comment. */ do_action( 'deleted_comment', $comment->comment_ID, $comment ); $post_id = $comment->comment_post_ID; if ( $post_id && 1 == $comment->comment_approved ) { wp_update_comment_count($post_id); } clean_comment_cache( $comment->comment_ID ); /** Ця дія міститься в wp-includes/comment.php */ do_action( 'wp_set_comment_status', $comment->comment_ID, 'delete' ); wp_transition_comment_status( 'delete', $comment->comment_approved, $comment ); return true; }

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *