/* START Override Recent Comments Widget Output from WordPress Widget */
class WP_Widget_Recent_Comments_Custom extends WP_Widget_Recent_Comments {
function widget( $args, $instance ) {
static $first_instance = true;
if ( ! isset( $args['widget_id'] ) ) {
$args['widget_id'] = $this->id;
}
$output = '';
$default_title = __( 'Recent Comments' );
$title = ( ! empty( $instance['title'] ) ) ? $instance['title'] : $default_title;
/** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
$number = ( ! empty( $instance['number'] ) ) ? absint( $instance['number'] ) : 5;
if ( ! $number ) {
$number = 5;
}
$comments = get_comments(
/**
* Filters the arguments for the Recent Comments widget.
*
* @since 3.4.0
* @since 4.9.0 Added the `$instance` parameter.
*
* @see WP_Comment_Query::query() for information on accepted arguments.
*
* @param array $comment_args An array of arguments used to retrieve the recent comments.
* @param array $instance Array of settings for the current widget.
*/
apply_filters(
'widget_comments_args',
array(
'number' => $number,
'status' => 'approve',
'post_status' => 'publish',
),
$instance
)
);
$output .= $args['before_widget'];
if ( $title ) {
$output .= $args['before_title'] . $title . $args['after_title'];
}
$recent_comments_id = ( $first_instance ) ? 'recentcomments' : "recentcomments-{$this->number}";
$first_instance = false;
$format = current_theme_supports( 'html5', 'navigation-widgets' ) ? 'html5' : 'xhtml';
/** This filter is documented in wp-includes/widgets/class-wp-nav-menu-widget.php */
$format = apply_filters( 'navigation_widgets_format', $format );
if ( 'html5' === $format ) {
// The title may be filtered: Strip out HTML and make sure the aria-label is never empty.
$title = trim( strip_tags( $title ) );
$aria_label = $title ? $title : $default_title;
$output .= '';
}
$output .= $args['after_widget'];
echo $output;
}
}
add_action( 'widgets_init', 'register_custom_recent_comments' );
function register_custom_recent_comments() {
register_widget( 'WP_Widget_Recent_Comments_Custom' );
}
/* END Override Recent Comments Widget Output from WordPress Widget */