_wp_dashboard_recent_comments_row

The timeline below displays how wordpress function _wp_dashboard_recent_comments_row has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.1

/**
 * Outputs a row for the Recent Comments widget.
 *
 * @access private
 * @since 2.7.0
 *
 * @global WP_Comment $comment Global comment object.
 *
 * @param WP_Comment $comment   The current comment.
 * @param bool       $show_date Optional. Whether to display the date.
 */
function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] = clone $comment;
    if ($comment->comment_post_ID > 0) {
        $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
        $comment_post_url = get_the_permalink($comment->comment_post_ID);
        $comment_post_link = '<a href="' . esc_url($comment_post_url) . '">' . $comment_post_title . '</a>';
    } else {
        $comment_post_link = '';
    }
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // Pre-order it: Approve | Reply | Edit | Spam | Trash.
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '', 'view' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = sprintf('<a href="%s" data-wp-lists="%s" class="vim-a aria-button-if-js" aria-label="%s">%s</a>', $approve_url, "dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved", esc_attr__('Approve this comment'), __('Approve'));
        $actions['unapprove'] = sprintf('<a href="%s" data-wp-lists="%s" class="vim-u aria-button-if-js" aria-label="%s">%s</a>', $unapprove_url, "dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved", esc_attr__('Unapprove this comment'), __('Unapprove'));
        $actions['edit'] = sprintf('<a href="%s" aria-label="%s">%s</a>', "comment.php?action=editcomment&amp;c={$comment->comment_ID}", esc_attr__('Edit this comment'), __('Edit'));
        $actions['reply'] = sprintf('<button type="button" onclick="window.commentReply && commentReply.open(\'%s\',\'%s\');" class="vim-r button-link hide-if-no-js" aria-label="%s">%s</button>', $comment->comment_ID, $comment->comment_post_ID, esc_attr__('Reply to this comment'), __('Reply'));
        $actions['spam'] = sprintf(
            '<a href="%s" data-wp-lists="%s" class="vim-s vim-destructive aria-button-if-js" aria-label="%s">%s</a>',
            $spam_url,
            "delete:the-comment-list:comment-{$comment->comment_ID}::spam=1",
            esc_attr__('Mark this comment as spam'),
            /* translators: "Mark as spam" link. */
            _x('Spam', 'verb')
        );
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = sprintf('<a href="%s" data-wp-lists="%s" class="delete vim-d vim-destructive aria-button-if-js" aria-label="%s">%s</a>', $delete_url, "delete:the-comment-list:comment-{$comment->comment_ID}::trash=1", esc_attr__('Delete this comment permanently'), __('Delete Permanently'));
        } else {
            $actions['trash'] = sprintf('<a href="%s" data-wp-lists="%s" class="delete vim-d vim-destructive aria-button-if-js" aria-label="%s">%s</a>', $trash_url, "delete:the-comment-list:comment-{$comment->comment_ID}::trash=1", esc_attr__('Move this comment to the Trash'), _x('Trash', 'verb'));
        }
        $actions['view'] = sprintf('<a class="comment-link" href="%s" aria-label="%s">%s</a>', esc_url(get_comment_link($comment)), esc_attr__('View this comment'), __('View'));
        /**
         * Filters the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param string[]   $actions An array of comment actions. Default actions include:
         *                            'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                            'Delete', and 'Trash'.
         * @param WP_Comment $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            if (('approve' === $action || 'unapprove' === $action) && 2 === $i || 1 === $i) {
                $separator = '';
            } else {
                $separator = ' | ';
            }
            // Reply and quickedit need a hide-if-no-js span.
            if ('reply' === $action || 'quickedit' === $action) {
                $action .= ' hide-if-no-js';
            }
            if ('view' === $action && '1' !== $comment->comment_approved) {
                $action .= ' hidden';
            }
            $actions_string .= "<span class='{$action}'>{$separator}{$link}</span>";
        }
    }
    ?>

		<li id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment)), $comment);
    ?>>

			<?php 
    $comment_row_class = '';
    if (get_option('show_avatars')) {
        echo get_avatar($comment, 50, 'mystery');
        $comment_row_class .= ' has-avatar';
    }
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' === $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap has-row-actions <?php 
        echo $comment_row_class;
        ?>">
			<p class="comment-meta">
				<?php 
        // Comments might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: Comment author, 2: Post link, 3: Notification if the comment is pending. */
                __('From %1$s on %2$s %3$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: Comment author, 2: Notification if the comment is pending. */
                __('From %1$s %2$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>

				<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap has-row-actions">
			<p class="comment-meta">
				<?php 
        // Pingbacks, Trackbacks or custom comment types might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: Type of comment, 2: Post link, 3: Notification if the comment is pending. */
                _x('%1$s on %2$s %3$s', 'dashboard'),
                "<strong>{$type}</strong>",
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: Type of comment, 2: Notification if the comment is pending. */
                _x('%1$s %2$s', 'dashboard'),
                "<strong>{$type}</strong>",
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>
			<p class="comment-author"><?php 
        comment_author_link($comment);
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt($comment);
    ?></p></blockquote>
			<?php 
    if ($actions_string) {
        ?>
			<p class="row-actions"><?php 
        echo $actions_string;
        ?></p>
			<?php 
    }
    ?>
			</div>
		</li>
	<?php 
    $GLOBALS['comment'] = null;
}

WordPress Version: 5.5

/**
 * Outputs a row for the Recent Comments widget.
 *
 * @access private
 * @since 2.7.0
 *
 * @global WP_Comment $comment Global comment object.
 *
 * @param WP_Comment $comment   The current comment.
 * @param bool       $show_date Optional. Whether to display the date.
 */
function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] = clone $comment;
    if ($comment->comment_post_ID > 0) {
        $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
        $comment_post_url = get_the_permalink($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = '';
    }
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // Pre-order it: Approve | Reply | Edit | Spam | Trash.
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '', 'view' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = sprintf('<a href="%s" data-wp-lists="%s" class="vim-a aria-button-if-js" aria-label="%s">%s</a>', $approve_url, "dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved", esc_attr__('Approve this comment'), __('Approve'));
        $actions['unapprove'] = sprintf('<a href="%s" data-wp-lists="%s" class="vim-u aria-button-if-js" aria-label="%s">%s</a>', $unapprove_url, "dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved", esc_attr__('Unapprove this comment'), __('Unapprove'));
        $actions['edit'] = sprintf('<a href="%s" aria-label="%s">%s</a>', "comment.php?action=editcomment&amp;c={$comment->comment_ID}", esc_attr__('Edit this comment'), __('Edit'));
        $actions['reply'] = sprintf('<button type="button" onclick="window.commentReply && commentReply.open(\'%s\',\'%s\');" class="vim-r button-link hide-if-no-js" aria-label="%s">%s</button>', $comment->comment_ID, $comment->comment_post_ID, esc_attr__('Reply to this comment'), __('Reply'));
        $actions['spam'] = sprintf(
            '<a href="%s" data-wp-lists="%s" class="vim-s vim-destructive aria-button-if-js" aria-label="%s">%s</a>',
            $spam_url,
            "delete:the-comment-list:comment-{$comment->comment_ID}::spam=1",
            esc_attr__('Mark this comment as spam'),
            /* translators: "Mark as spam" link. */
            _x('Spam', 'verb')
        );
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = sprintf('<a href="%s" data-wp-lists="%s" class="delete vim-d vim-destructive aria-button-if-js" aria-label="%s">%s</a>', $delete_url, "delete:the-comment-list:comment-{$comment->comment_ID}::trash=1", esc_attr__('Delete this comment permanently'), __('Delete Permanently'));
        } else {
            $actions['trash'] = sprintf('<a href="%s" data-wp-lists="%s" class="delete vim-d vim-destructive aria-button-if-js" aria-label="%s">%s</a>', $trash_url, "delete:the-comment-list:comment-{$comment->comment_ID}::trash=1", esc_attr__('Move this comment to the Trash'), _x('Trash', 'verb'));
        }
        $actions['view'] = sprintf('<a class="comment-link" href="%s" aria-label="%s">%s</a>', esc_url(get_comment_link($comment)), esc_attr__('View this comment'), __('View'));
        /**
         * Filters the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param string[]   $actions An array of comment actions. Default actions include:
         *                            'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                            'Delete', and 'Trash'.
         * @param WP_Comment $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            if (('approve' === $action || 'unapprove' === $action) && 2 === $i || 1 === $i) {
                $sep = '';
            } else {
                $sep = ' | ';
            }
            // Reply and quickedit need a hide-if-no-js span.
            if ('reply' === $action || 'quickedit' === $action) {
                $action .= ' hide-if-no-js';
            }
            if ('view' === $action && '1' !== $comment->comment_approved) {
                $action .= ' hidden';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<li id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment)), $comment);
    ?>>

			<?php 
    $comment_row_class = '';
    if (get_option('show_avatars')) {
        echo get_avatar($comment, 50, 'mystery');
        $comment_row_class .= ' has-avatar';
    }
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' === $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap has-row-actions <?php 
        echo $comment_row_class;
        ?>">
			<p class="comment-meta">
				<?php 
        // Comments might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: Comment author, 2: Post link, 3: Notification if the comment is pending. */
                __('From %1$s on %2$s %3$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: Comment author, 2: Notification if the comment is pending. */
                __('From %1$s %2$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>

				<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap has-row-actions">
			<p class="comment-meta">
				<?php 
        // Pingbacks, Trackbacks or custom comment types might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: Type of comment, 2: Post link, 3: Notification if the comment is pending. */
                _x('%1$s on %2$s %3$s', 'dashboard'),
                "<strong>{$type}</strong>",
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: Type of comment, 2: Notification if the comment is pending. */
                _x('%1$s %2$s', 'dashboard'),
                "<strong>{$type}</strong>",
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>
			<p class="comment-author"><?php 
        comment_author_link($comment);
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt($comment);
    ?></p></blockquote>
			<?php 
    if ($actions_string) {
        ?>
			<p class="row-actions"><?php 
        echo $actions_string;
        ?></p>
			<?php 
    }
    ?>
			</div>
		</li>
	<?php 
    $GLOBALS['comment'] = null;
}

WordPress Version: 5.4

/**
 * Outputs a row for the Recent Comments widget.
 *
 * @access private
 * @since 2.7.0
 *
 * @global WP_Comment $comment Global comment object.
 *
 * @param WP_Comment $comment   The current comment.
 * @param bool       $show_date Optional. Whether to display the date.
 */
function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] = clone $comment;
    if ($comment->comment_post_ID > 0) {
        $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
        $comment_post_url = get_the_permalink($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = '';
    }
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // Pre-order it: Approve | Reply | Edit | Spam | Trash.
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '', 'view' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = sprintf('<a href="%s" data-wp-lists="%s" class="vim-a aria-button-if-js" aria-label="%s">%s</a>', $approve_url, "dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved", esc_attr__('Approve this comment'), __('Approve'));
        $actions['unapprove'] = sprintf('<a href="%s" data-wp-lists="%s" class="vim-u aria-button-if-js" aria-label="%s">%s</a>', $unapprove_url, "dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved", esc_attr__('Unapprove this comment'), __('Unapprove'));
        $actions['edit'] = sprintf('<a href="%s" aria-label="%s">%s</a>', "comment.php?action=editcomment&amp;c={$comment->comment_ID}", esc_attr__('Edit this comment'), __('Edit'));
        $actions['reply'] = sprintf('<button type="button" onclick="window.commentReply && commentReply.open(\'%s\',\'%s\');" class="vim-r button-link hide-if-no-js" aria-label="%s">%s</button>', $comment->comment_ID, $comment->comment_post_ID, esc_attr__('Reply to this comment'), __('Reply'));
        $actions['spam'] = sprintf(
            '<a href="%s" data-wp-lists="%s" class="vim-s vim-destructive aria-button-if-js" aria-label="%s">%s</a>',
            $spam_url,
            "delete:the-comment-list:comment-{$comment->comment_ID}::spam=1",
            esc_attr__('Mark this comment as spam'),
            /* translators: "Mark as spam" link. */
            _x('Spam', 'verb')
        );
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = sprintf('<a href="%s" data-wp-lists="%s" class="delete vim-d vim-destructive aria-button-if-js" aria-label="%s">%s</a>', $delete_url, "delete:the-comment-list:comment-{$comment->comment_ID}::trash=1", esc_attr__('Delete this comment permanently'), __('Delete Permanently'));
        } else {
            $actions['trash'] = sprintf('<a href="%s" data-wp-lists="%s" class="delete vim-d vim-destructive aria-button-if-js" aria-label="%s">%s</a>', $trash_url, "delete:the-comment-list:comment-{$comment->comment_ID}::trash=1", esc_attr__('Move this comment to the Trash'), _x('Trash', 'verb'));
        }
        $actions['view'] = sprintf('<a class="comment-link" href="%s" aria-label="%s">%s</a>', esc_url(get_comment_link($comment)), esc_attr__('View this comment'), __('View'));
        /**
         * Filters the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param string[]   $actions An array of comment actions. Default actions include:
         *                            'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                            'Delete', and 'Trash'.
         * @param WP_Comment $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span.
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            if ('view' === $action && '1' !== $comment->comment_approved) {
                $action .= ' hidden';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<li id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment)), $comment);
    ?>>

			<?php 
    $comment_row_class = '';
    if (get_option('show_avatars')) {
        echo get_avatar($comment, 50, 'mystery');
        $comment_row_class .= ' has-avatar';
    }
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap has-row-actions <?php 
        echo $comment_row_class;
        ?>">
			<p class="comment-meta">
				<?php 
        // Comments might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: Comment author, 2: Post link, 3: Notification if the comment is pending. */
                __('From %1$s on %2$s %3$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: Comment author, 2: Notification if the comment is pending. */
                __('From %1$s %2$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>

				<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap has-row-actions">
			<p class="comment-meta">
				<?php 
        // Pingbacks, Trackbacks or custom comment types might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: Type of comment, 2: Post link, 3: Notification if the comment is pending. */
                _x('%1$s on %2$s %3$s', 'dashboard'),
                "<strong>{$type}</strong>",
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: Type of comment, 2: Notification if the comment is pending. */
                _x('%1$s %2$s', 'dashboard'),
                "<strong>{$type}</strong>",
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>
			<p class="comment-author"><?php 
        comment_author_link($comment);
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt($comment);
    ?></p></blockquote>
			<?php 
    if ($actions_string) {
        ?>
			<p class="row-actions"><?php 
        echo $actions_string;
        ?></p>
			<?php 
    }
    ?>
			</div>
		</li>
	<?php 
    $GLOBALS['comment'] = null;
}

WordPress Version: 5.3

/**
 * Outputs a row for the Recent Comments widget.
 *
 * @access private
 * @since 2.7.0
 *
 * @global WP_Comment $comment Global comment object.
 *
 * @param WP_Comment $comment   The current comment.
 * @param bool       $show_date Optional. Whether to display the date.
 */
function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] = clone $comment;
    if ($comment->comment_post_ID > 0) {
        $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
        $comment_post_url = get_the_permalink($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = '';
    }
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // Pre-order it: Approve | Reply | Edit | Spam | Trash.
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '', 'view' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = sprintf('<a href="%s" data-wp-lists="%s" class="vim-a aria-button-if-js" aria-label="%s">%s</a>', $approve_url, "dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved", esc_attr__('Approve this comment'), __('Approve'));
        $actions['unapprove'] = sprintf('<a href="%s" data-wp-lists="%s" class="vim-u aria-button-if-js" aria-label="%s">%s</a>', $unapprove_url, "dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved", esc_attr__('Unapprove this comment'), __('Unapprove'));
        $actions['edit'] = sprintf('<a href="%s" aria-label="%s">%s</a>', "comment.php?action=editcomment&amp;c={$comment->comment_ID}", esc_attr__('Edit this comment'), __('Edit'));
        $actions['reply'] = sprintf('<button type="button" onclick="window.commentReply && commentReply.open(\'%s\',\'%s\');" class="vim-r button-link hide-if-no-js" aria-label="%s">%s</button>', $comment->comment_ID, $comment->comment_post_ID, esc_attr__('Reply to this comment'), __('Reply'));
        $actions['spam'] = sprintf(
            '<a href="%s" data-wp-lists="%s" class="vim-s vim-destructive aria-button-if-js" aria-label="%s">%s</a>',
            $spam_url,
            "delete:the-comment-list:comment-{$comment->comment_ID}::spam=1",
            esc_attr__('Mark this comment as spam'),
            /* translators: "Mark as spam" link. */
            _x('Spam', 'verb')
        );
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = sprintf('<a href="%s" data-wp-lists="%s" class="delete vim-d vim-destructive aria-button-if-js" aria-label="%s">%s</a>', $delete_url, "delete:the-comment-list:comment-{$comment->comment_ID}::trash=1", esc_attr__('Delete this comment permanently'), __('Delete Permanently'));
        } else {
            $actions['trash'] = sprintf('<a href="%s" data-wp-lists="%s" class="delete vim-d vim-destructive aria-button-if-js" aria-label="%s">%s</a>', $trash_url, "delete:the-comment-list:comment-{$comment->comment_ID}::trash=1", esc_attr__('Move this comment to the Trash'), _x('Trash', 'verb'));
        }
        $actions['view'] = sprintf('<a class="comment-link" href="%s" aria-label="%s">%s</a>', esc_url(get_comment_link($comment)), esc_attr__('View this comment'), __('View'));
        /**
         * Filters the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param string[]   $actions An array of comment actions. Default actions include:
         *                            'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                            'Delete', and 'Trash'.
         * @param WP_Comment $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            if ('view' === $action && '1' !== $comment->comment_approved) {
                $action .= ' hidden';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<li id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment)), $comment);
    ?>>

			<?php 
    echo get_avatar($comment, 50, 'mystery');
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap has-row-actions">
			<p class="comment-meta">
				<?php 
        // Comments might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: Comment author, 2: Post link, 3: Notification if the comment is pending. */
                __('From %1$s on %2$s %3$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: Comment author, 2: Notification if the comment is pending. */
                __('From %1$s %2$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>

				<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap has-row-actions">
			<p class="comment-meta">
				<?php 
        // Pingbacks, Trackbacks or custom comment types might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: Type of comment, 2: Post link, 3: Notification if the comment is pending. */
                _x('%1$s on %2$s %3$s', 'dashboard'),
                "<strong>{$type}</strong>",
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: Type of comment, 2: Notification if the comment is pending. */
                _x('%1$s %2$s', 'dashboard'),
                "<strong>{$type}</strong>",
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>
			<p class="comment-author"><?php 
        comment_author_link($comment);
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt($comment);
    ?></p></blockquote>
			<?php 
    if ($actions_string) {
        ?>
			<p class="row-actions"><?php 
        echo $actions_string;
        ?></p>
			<?php 
    }
    ?>
			</div>
		</li>
	<?php 
    $GLOBALS['comment'] = null;
}

WordPress Version: 5.2

/**
 * Outputs a row for the Recent Comments widget.
 *
 * @access private
 * @since 2.7.0
 *
 * @global WP_Comment $comment
 *
 * @param WP_Comment $comment   The current comment.
 * @param bool       $show_date Optional. Whether to display the date.
 */
function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] = clone $comment;
    if ($comment->comment_post_ID > 0) {
        $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
        $comment_post_url = get_the_permalink($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = '';
    }
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // Pre-order it: Approve | Reply | Edit | Spam | Trash.
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '', 'view' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a aria-button-if-js' aria-label='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u aria-button-if-js' aria-label='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' aria-label='" . esc_attr__('Edit this comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<button type="button" onclick="window.commentReply && commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');" class="vim-r button-link hide-if-no-js" aria-label="' . esc_attr__('Reply to this comment') . '">' . __('Reply') . '</button>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive aria-button-if-js' aria-label='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive aria-button-if-js' aria-label='" . esc_attr__('Delete this comment permanently') . "'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive aria-button-if-js' aria-label='" . esc_attr__('Move this comment to the Trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions['view'] = '<a class="comment-link" href="' . esc_url(get_comment_link($comment)) . '" aria-label="' . esc_attr__('View this comment') . '">' . __('View') . '</a>';
        /**
         * Filters the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param string[]   $actions An array of comment actions. Default actions include:
         *                            'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                            'Delete', and 'Trash'.
         * @param WP_Comment $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            if ('view' === $action && '1' !== $comment->comment_approved) {
                $action .= ' hidden';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<li id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment)), $comment);
    ?>>

			<?php 
    echo get_avatar($comment, 50, 'mystery');
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap has-row-actions">
			<p class="comment-meta">
				<?php 
        // Comments might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
                __('From %1$s on %2$s %3$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: comment author, 2: notification if the comment is pending */
                __('From %1$s %2$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>

				<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap has-row-actions">
			<p class="comment-meta">
				<?php 
        // Pingbacks, Trackbacks or custom comment types might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: type of comment, 2: post link, 3: notification if the comment is pending */
                _x('%1$s on %2$s %3$s', 'dashboard'),
                "<strong>{$type}</strong>",
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: type of comment, 2: notification if the comment is pending */
                _x('%1$s %2$s', 'dashboard'),
                "<strong>{$type}</strong>",
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>
			<p class="comment-author"><?php 
        comment_author_link($comment);
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt($comment);
    ?></p></blockquote>
			<?php 
    if ($actions_string) {
        ?>
			<p class="row-actions"><?php 
        echo $actions_string;
        ?></p>
			<?php 
    }
    ?>
			</div>
		</li>
	<?php 
    $GLOBALS['comment'] = null;
}

WordPress Version: 5.1

/**
 * Outputs a row for the Recent Comments widget.
 *
 * @access private
 * @since 2.7.0
 *
 * @global WP_Comment $comment
 *
 * @param WP_Comment $comment   The current comment.
 * @param bool       $show_date Optional. Whether to display the date.
 */
function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] = clone $comment;
    if ($comment->comment_post_ID > 0) {
        $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
        $comment_post_url = get_the_permalink($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = '';
    }
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // Pre-order it: Approve | Reply | Edit | Spam | Trash.
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '', 'view' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' aria-label='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' aria-label='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' aria-label='" . esc_attr__('Edit this comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="window.commentReply && commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" aria-label="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' aria-label='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' aria-label='" . esc_attr__('Delete this comment permanently') . "'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' aria-label='" . esc_attr__('Move this comment to the Trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions['view'] = '<a class="comment-link" href="' . esc_url(get_comment_link($comment)) . '" aria-label="' . esc_attr__('View this comment') . '">' . __('View') . '</a>';
        /**
         * Filters the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param string[]   $actions An array of comment actions. Default actions include:
         *                            'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                            'Delete', and 'Trash'.
         * @param WP_Comment $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            if ('view' === $action && '1' !== $comment->comment_approved) {
                $action .= ' hidden';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<li id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment)), $comment);
    ?>>

			<?php 
    echo get_avatar($comment, 50, 'mystery');
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap has-row-actions">
			<p class="comment-meta">
				<?php 
        // Comments might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
                __('From %1$s on %2$s %3$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: comment author, 2: notification if the comment is pending */
                __('From %1$s %2$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>

				<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap has-row-actions">
			<p class="comment-meta">
				<?php 
        // Pingbacks, Trackbacks or custom comment types might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: type of comment, 2: post link, 3: notification if the comment is pending */
                _x('%1$s on %2$s %3$s', 'dashboard'),
                "<strong>{$type}</strong>",
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: type of comment, 2: notification if the comment is pending */
                _x('%1$s %2$s', 'dashboard'),
                "<strong>{$type}</strong>",
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>
			<p class="comment-author"><?php 
        comment_author_link($comment);
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt($comment);
    ?></p></blockquote>
			<?php 
    if ($actions_string) {
        ?>
			<p class="row-actions"><?php 
        echo $actions_string;
        ?></p>
			<?php 
    }
    ?>
			</div>
		</li>
	<?php 
    $GLOBALS['comment'] = null;
}

WordPress Version: 4.6

/**
 * Outputs a row for the Recent Comments widget.
 *
 * @access private
 * @since 2.7.0
 *
 * @global WP_Comment $comment
 *
 * @param WP_Comment $comment   The current comment.
 * @param bool       $show_date Optional. Whether to display the date.
 */
function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] = clone $comment;
    if ($comment->comment_post_ID > 0) {
        $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
        $comment_post_url = get_the_permalink($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = '';
    }
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // Pre-order it: Approve | Reply | Edit | Spam | Trash.
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '', 'view' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' aria-label='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' aria-label='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' aria-label='" . esc_attr__('Edit this comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="window.commentReply && commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" aria-label="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' aria-label='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' aria-label='" . esc_attr__('Delete this comment permanently') . "'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' aria-label='" . esc_attr__('Move this comment to the Trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions['view'] = '<a class="comment-link" href="' . esc_url(get_comment_link($comment)) . '" aria-label="' . esc_attr__('View this comment') . '">' . __('View') . '</a>';
        /**
         * Filters the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param array      $actions An array of comment actions. Default actions include:
         *                            'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                            'Delete', and 'Trash'.
         * @param WP_Comment $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            if ('view' === $action && '1' !== $comment->comment_approved) {
                $action .= ' hidden';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<li id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment)), $comment);
    ?>>

			<?php 
    echo get_avatar($comment, 50, 'mystery');
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap has-row-actions">
			<p class="comment-meta">
			<?php 
        // Comments might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
                __('From %1$s on %2$s %3$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: comment author, 2: notification if the comment is pending */
                __('From %1$s %2$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap has-row-actions">
			<p class="comment-meta">
			<?php 
        // Pingbacks, Trackbacks or custom comment types might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: type of comment, 2: post link, 3: notification if the comment is pending */
                _x('%1$s on %2$s %3$s', 'dashboard'),
                "<strong>{$type}</strong>",
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: type of comment, 2: notification if the comment is pending */
                _x('%1$s %2$s', 'dashboard'),
                "<strong>{$type}</strong>",
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>
			<p class="comment-author"><?php 
        comment_author_link($comment);
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt($comment);
    ?></p></blockquote>
			<?php 
    if ($actions_string) {
        ?>
			<p class="row-actions"><?php 
        echo $actions_string;
        ?></p>
			<?php 
    }
    ?>
			</div>
		</li>
<?php 
    $GLOBALS['comment'] = null;
}

WordPress Version: 4.5

/**
 * Outputs a row for the Recent Comments widget.
 *
 * @access private
 * @since 2.7.0
 *
 * @global WP_Comment $comment
 *
 * @param WP_Comment $comment   The current comment.
 * @param bool       $show_date Optional. Whether to display the date.
 */
function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] = clone $comment;
    if ($comment->comment_post_ID > 0) {
        $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
        $comment_post_url = get_the_permalink($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = '';
    }
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // Pre-order it: Approve | Reply | Edit | Spam | Trash.
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '', 'view' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' aria-label='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' aria-label='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' aria-label='" . esc_attr__('Edit this comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="window.commentReply && commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" aria-label="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' aria-label='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' aria-label='" . esc_attr__('Delete this comment permanently') . "'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' aria-label='" . esc_attr__('Move this comment to the Trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        if ('1' === $comment->comment_approved) {
            $actions['view'] = '<a class="comment-link" href="' . esc_url(get_comment_link($comment)) . '" aria-label="' . esc_attr__('View this comment') . '">' . __('View') . '</a>';
        }
        /**
         * Filter the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param array      $actions An array of comment actions. Default actions include:
         *                            'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                            'Delete', and 'Trash'.
         * @param WP_Comment $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<li id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment)), $comment);
    ?>>

			<?php 
    echo get_avatar($comment, 50, 'mystery');
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap has-row-actions">
			<p class="comment-meta">
			<?php 
        // Comments might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
                __('From %1$s on %2$s %3$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: comment author, 2: notification if the comment is pending */
                __('From %1$s %2$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap has-row-actions">
			<p class="comment-meta">
			<?php 
        // Pingbacks, Trackbacks or custom comment types might not have a post they relate to, e.g. programmatically created ones.
        if ($comment_post_link) {
            printf(
                /* translators: 1: type of comment, 2: post link, 3: notification if the comment is pending */
                _x('%1$s on %2$s %3$s', 'dashboard'),
                "<strong>{$type}</strong>",
                $comment_post_link,
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: type of comment, 2: notification if the comment is pending */
                _x('%1$s %2$s', 'dashboard'),
                "<strong>{$type}</strong>",
                '<span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>
			<p class="comment-author"><?php 
        comment_author_link($comment);
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt($comment);
    ?></p></blockquote>
			<?php 
    if ($actions_string) {
        ?>
			<p class="row-actions"><?php 
        echo $actions_string;
        ?></p>
			<?php 
    }
    ?>
			</div>
		</li>
<?php 
    $GLOBALS['comment'] = null;
}

WordPress Version: 4.4

/**
 * @global WP_Comment $comment
 *
 * @param WP_Comment $comment
 * @param bool       $show_date
 */
function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] = clone $comment;
    if ($comment->comment_post_ID > 0 && current_user_can('edit_post', $comment->comment_post_ID)) {
        $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
        $comment_post_url = get_edit_post_link($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = '';
    }
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // Pre-order it: Approve | Reply | Edit | Spam | Trash.
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '', 'view' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="window.commentReply && commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        if ('1' === $comment->comment_approved) {
            $actions['view'] = '<a class="comment-link" href="' . esc_url(get_comment_link($comment)) . '">' . _x('View', 'verb') . '</a>';
        }
        /**
         * Filter the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param array      $actions An array of comment actions. Default actions include:
         *                            'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                            'Delete', and 'Trash'.
         * @param WP_Comment $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment)), $comment);
    ?>>

			<?php 
    echo get_avatar($comment, 50, 'mystery');
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap has-row-actions">
			<p class="comment-meta">
				<?php 
        if ($comment_post_link) {
            printf(
                /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
                __('From %1$s on %2$s%3$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                $comment_post_link,
                ' <span class="approve">' . __('[Pending]') . '</span>'
            );
        } else {
            printf(
                /* translators: 1: comment author, 2: notification if the comment is pending */
                __('From %1$s %2$s'),
                '<cite class="comment-author">' . get_comment_author_link($comment) . '</cite>',
                ' <span class="approve">' . __('[Pending]') . '</span>'
            );
        }
        ?>
			</p>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap has-row-actions">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<p class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link);
        ?></p>
			<p class="comment-author"><?php 
        comment_author_link($comment);
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt($comment);
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
    $GLOBALS['comment'] = null;
}

WordPress Version: 4.3

/**
 * @global object $comment
 *
 * @param object $comment
 * @param bool   $show_date
 */
function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
    if (current_user_can('edit_post', $comment->comment_post_ID)) {
        $comment_post_url = get_edit_post_link($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = $comment_post_title;
    }
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // Pre-order it: Approve | Reply | Edit | Spam | Trash.
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="window.commentReply && commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        /**
         * Filter the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param array  $actions An array of comment actions. Default actions include:
         *                        'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                        'Delete', and 'Trash'.
         * @param object $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>

			<?php 
    echo get_avatar($comment, 50, 'mystery');
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap has-row-actions">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap has-row-actions">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: .10

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
    if (current_user_can('edit_post', $comment->comment_post_ID)) {
        $comment_post_url = get_edit_post_link($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = $comment_post_title;
    }
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // Pre-order it: Approve | Reply | Edit | Spam | Trash.
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="window.commentReply && commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        /**
         * Filter the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param array  $actions An array of comment actions. Default actions include:
         *                        'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                        'Delete', and 'Trash'.
         * @param object $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>

			<?php 
    echo get_avatar($comment, 50, 'mystery');
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 4.1

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_title = strip_tags(get_the_title($comment->comment_post_ID));
    if (current_user_can('edit_post', $comment->comment_post_ID)) {
        $comment_post_url = get_edit_post_link($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = $comment_post_title;
    }
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // Pre-order it: Approve | Reply | Edit | Spam | Trash.
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="window.commentReply && commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        /**
         * Filter the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param array  $actions An array of comment actions. Default actions include:
         *                        'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                        'Delete', and 'Trash'.
         * @param object $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>

			<?php 
    echo get_avatar($comment, 50, 'mystery');
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: .10

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
    if (current_user_can('edit_post', $comment->comment_post_ID)) {
        $comment_post_url = get_edit_post_link($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = $comment_post_title;
    }
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // Pre-order it: Approve | Reply | Edit | Spam | Trash.
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="window.commentReply && commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        /**
         * Filter the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param array  $actions An array of comment actions. Default actions include:
         *                        'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                        'Delete', and 'Trash'.
         * @param object $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>

			<?php 
    echo get_avatar($comment, 50, 'mystery');
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 4.0

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_title = strip_tags(get_the_title($comment->comment_post_ID));
    if (current_user_can('edit_post', $comment->comment_post_ID)) {
        $comment_post_url = get_edit_post_link($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = $comment_post_title;
    }
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // Pre-order it: Approve | Reply | Edit | Spam | Trash.
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="window.commentReply && commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        /**
         * Filter the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param array  $actions An array of comment actions. Default actions include:
         *                        'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                        'Delete', and 'Trash'.
         * @param object $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>

			<?php 
    echo get_avatar($comment, 50, 'mystery');
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 9.4

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
    if (current_user_can('edit_post', $comment->comment_post_ID)) {
        $comment_post_url = get_edit_post_link($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = $comment_post_title;
    }
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="window.commentReply && commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        /**
         * Filter the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param array  $actions An array of comment actions. Default actions include:
         *                        'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                        'Delete', and 'Trash'.
         * @param object $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>

			<?php 
    echo get_avatar($comment, 50, 'mystery');
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 9.2

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_title = strip_tags(get_the_title($comment->comment_post_ID));
    if (current_user_can('edit_post', $comment->comment_post_ID)) {
        $comment_post_url = get_edit_post_link($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = $comment_post_title;
    }
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="window.commentReply && commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        /**
         * Filter the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param array  $actions An array of comment actions. Default actions include:
         *                        'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                        'Delete', and 'Trash'.
         * @param object $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>

			<?php 
    echo get_avatar($comment, 50, 'mystery');
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: .10

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
    if (current_user_can('edit_post', $comment->comment_post_ID)) {
        $comment_post_url = get_edit_post_link($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = $comment_post_title;
    }
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="window.commentReply && commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        /**
         * Filter the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param array  $actions An array of comment actions. Default actions include:
         *                        'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                        'Delete', and 'Trash'.
         * @param object $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>

			<?php 
    echo get_avatar($comment, 50, 'mystery');
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 3.9

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_title = strip_tags(get_the_title($comment->comment_post_ID));
    if (current_user_can('edit_post', $comment->comment_post_ID)) {
        $comment_post_url = get_edit_post_link($comment->comment_post_ID);
        $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    } else {
        $comment_post_link = $comment_post_title;
    }
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="window.commentReply && commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        /**
         * Filter the action links displayed for each comment in the 'Recent Comments'
         * dashboard widget.
         *
         * @since 2.6.0
         *
         * @param array  $actions An array of comment actions. Default actions include:
         *                        'Approve', 'Unapprove', 'Edit', 'Reply', 'Spam',
         *                        'Delete', and 'Trash'.
         * @param object $comment The comment object.
         */
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>

			<?php 
    echo get_avatar($comment, 50, 'mystery');
    ?>

			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 8.6

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 8.4

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = strip_tags(get_the_title($comment->comment_post_ID));
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: .30

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 8.3

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = strip_tags(get_the_title($comment->comment_post_ID));
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: .20

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 8.2

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = strip_tags(get_the_title($comment->comment_post_ID));
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: .10

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 3.8

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = strip_tags(get_the_title($comment->comment_post_ID));
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 7.6

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 7.5

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = strip_tags(get_the_title($comment->comment_post_ID));
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: .40

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 7.4

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = strip_tags(get_the_title($comment->comment_post_ID));
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: .30

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 7.3

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = strip_tags(get_the_title($comment->comment_post_ID));
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: .20

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 7.2

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = strip_tags(get_the_title($comment->comment_post_ID));
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: .10

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = _draft_or_post_title($comment->comment_post_ID);
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}

WordPress Version: 3.7

function _wp_dashboard_recent_comments_row(&$comment, $show_date = true)
{
    $GLOBALS['comment'] =& $comment;
    $comment_post_url = get_edit_post_link($comment->comment_post_ID);
    $comment_post_title = strip_tags(get_the_title($comment->comment_post_ID));
    $comment_post_link = "<a href='{$comment_post_url}'>{$comment_post_title}</a>";
    $comment_link = '<a class="comment-link" href="' . esc_url(get_comment_link()) . '">#</a>';
    $actions_string = '';
    if (current_user_can('edit_comment', $comment->comment_ID)) {
        // preorder it: Approve | Reply | Edit | Spam | Trash
        $actions = array('approve' => '', 'unapprove' => '', 'reply' => '', 'edit' => '', 'spam' => '', 'trash' => '', 'delete' => '');
        $del_nonce = esc_html('_wpnonce=' . wp_create_nonce("delete-comment_{$comment->comment_ID}"));
        $approve_nonce = esc_html('_wpnonce=' . wp_create_nonce("approve-comment_{$comment->comment_ID}"));
        $approve_url = esc_url("comment.php?action=approvecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $unapprove_url = esc_url("comment.php?action=unapprovecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$approve_nonce}");
        $spam_url = esc_url("comment.php?action=spamcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $trash_url = esc_url("comment.php?action=trashcomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $delete_url = esc_url("comment.php?action=deletecomment&p={$comment->comment_post_ID}&c={$comment->comment_ID}&{$del_nonce}");
        $actions['approve'] = "<a href='{$approve_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__('Approve this comment') . "'>" . __('Approve') . '</a>';
        $actions['unapprove'] = "<a href='{$unapprove_url}' data-wp-lists='dim:the-comment-list:comment-{$comment->comment_ID}:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__('Unapprove this comment') . "'>" . __('Unapprove') . '</a>';
        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>" . __('Edit') . '</a>';
        $actions['reply'] = '<a onclick="commentReply.open(\'' . $comment->comment_ID . '\',\'' . $comment->comment_post_ID . '\');return false;" class="vim-r hide-if-no-js" title="' . esc_attr__('Reply to this comment') . '" href="#">' . __('Reply') . '</a>';
        $actions['spam'] = "<a href='{$spam_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::spam=1' class='vim-s vim-destructive' title='" . esc_attr__('Mark this comment as spam') . "'>" . _x('Spam', 'verb') . '</a>';
        if (!EMPTY_TRASH_DAYS) {
            $actions['delete'] = "<a href='{$delete_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
        } else {
            $actions['trash'] = "<a href='{$trash_url}' data-wp-lists='delete:the-comment-list:comment-{$comment->comment_ID}::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__('Move this comment to the trash') . "'>" . _x('Trash', 'verb') . '</a>';
        }
        $actions = apply_filters('comment_row_actions', array_filter($actions), $comment);
        $i = 0;
        foreach ($actions as $action => $link) {
            ++$i;
            (('approve' == $action || 'unapprove' == $action) && 2 === $i || 1 === $i) ? $sep = '' : $sep = ' | ';
            // Reply and quickedit need a hide-if-no-js span
            if ('reply' == $action || 'quickedit' == $action) {
                $action .= ' hide-if-no-js';
            }
            $actions_string .= "<span class='{$action}'>{$sep}{$link}</span>";
        }
    }
    ?>

		<div id="comment-<?php 
    echo $comment->comment_ID;
    ?>" <?php 
    comment_class(array('comment-item', wp_get_comment_status($comment->comment_ID)));
    ?>>
			<?php 
    if (!$comment->comment_type || 'comment' == $comment->comment_type) {
        ?>

			<?php 
        echo get_avatar($comment, 50, 'mystery');
        ?>

			<div class="dashboard-comment-wrap">
			<h4 class="comment-meta">
				<?php 
        printf(
            /* translators: 1: comment author, 2: post link, 3: notification if the comment is pending */
            __('From %1$s on %2$s%3$s'),
            '<cite class="comment-author">' . get_comment_author_link() . '</cite>',
            $comment_post_link . ' ' . $comment_link,
            ' <span class="approve">' . __('[Pending]') . '</span>'
        );
        ?>
			</h4>

			<?php 
    } else {
        switch ($comment->comment_type) {
            case 'pingback':
                $type = __('Pingback');
                break;
            case 'trackback':
                $type = __('Trackback');
                break;
            default:
                $type = ucwords($comment->comment_type);
        }
        $type = esc_html($type);
        ?>
			<div class="dashboard-comment-wrap">
			<?php 
        /* translators: %1$s is type of comment, %2$s is link to the post */
        ?>
			<h4 class="comment-meta"><?php 
        printf(_x('%1$s on %2$s', 'dashboard'), "<strong>{$type}</strong>", $comment_post_link . " " . $comment_link);
        ?></h4>
			<p class="comment-author"><?php 
        comment_author_link();
        ?></p>

			<?php 
    }
    // comment_type 
    ?>
			<blockquote><p><?php 
    comment_excerpt();
    ?></p></blockquote>
			<p class="row-actions"><?php 
    echo $actions_string;
    ?></p>
			</div>
		</div>
<?php 
}