删除垃圾评论时所附的“评论回复”

时间:2014-01-29 作者:dkl

当向垃圾桶发送评论时,附加的“评论回复”不会被丢弃或删除。

如何配置wordpress,以便在丢弃评论时自动删除评论回复?

1 个回复
最合适的回答,由SO网友:fischi 整理而成

您可以为delete_comment, 在这里,您可以循环浏览childcomments并删除它们。

我在这里使用了两个不同的函数,一个是垃圾childcomments(连接到trash_comment), 还有一个直接删除它们的。

请确定您使用哪种功能,或者如果您想同时使用这两种功能。安全的版本是将childcomments移动到垃圾箱,而不是首先删除它们-在这种情况下,您必须钩住f711_trash_child_commentsdelete_comment.

请注意,此函数是完全递归的。调用操作before 注释实际上已被删除,因此在时间轴中,嵌套的注释首先从最底层开始删除。

add_action( \'delete_comment\', \'f711_delete_child_comments\' ); // complete deletion
add_action( \'trash_comment\', \'f711_trash_child_comments\' ); // move to trash


function f711_delete_child_comments( $comment_id ) {

    global $wpdb;
    $children = $wpdb->get_col( $wpdb->prepare("SELECT comment_ID FROM $wpdb->comments WHERE comment_parent = %d", $comment_id) ); //select the comments where the parentcomment is the comment to be deleted

    if ( !empty($children) ) {
        foreach( $children as $thischild => $childid ) {

            wp_delete_comment( $childid, true ); // set second parameter to false if you just want to move it to the trash

        }

    }

}

function f711_trash_child_comments( $comment_id ) {

    global $wpdb;
    $children = $wpdb->get_col( $wpdb->prepare("SELECT comment_ID FROM $wpdb->comments WHERE comment_parent = %d", $comment_id) ); //select the comments where the parentcomment is the comment to be deleted

    if ( !empty($children) ) {
        foreach( $children as $thischild => $childid ) {

            wp_trash_comment( $childid ); // set second parameter to false if you just want to move it to the trash

        }

    }

}

结束

相关推荐

如何从循环外部的wp_list_Comments中获取特定数据?

我需要一些帮助,对wordpress很陌生。我只需要评论标题和评论日期wp_list_comments 函数,在将$postid声明为全局变量后从外部循环调用。现在,我正在获取有关评论的所有信息,如作者、日期、标题、评论等。那么,我如何才能获得上述特定细节?