the_comments( array $args = array() )` */ class Component implements Component_Interface, Templating_Component_Interface { /** * Gets the unique identifier for the theme component. * * @return string Component slug. */ public function get_slug(): string { return 'comments'; } /** * Adds the action and filter hooks to integrate with WordPress. */ public function initialize() { add_action( 'wp_enqueue_scripts', array( $this, 'action_enqueue_comment_reply_script' ) ); } /** * Gets template tags to expose as methods on the Template_Tags class instance, accessible through `buddyx()`. * * @return array Associative array of $method_name => $callback_info pairs. Each $callback_info must either be * a callable or an array with key 'callable'. This approach is used to reserve the possibility of * adding support for further arguments in the future. */ public function template_tags(): array { return array( 'the_comments' => array( $this, 'the_comments' ), ); } /** * Enqueues the WordPress core 'comment-reply' script as necessary. */ public function action_enqueue_comment_reply_script() { // Enqueue comment script on singular post/page views only. if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { wp_enqueue_script( 'comment-reply' ); } } /** * Filters the comment form default arguments. * * Change the heading level to h2 when there are no comments. * * @param array $args The default comment form arguments. * @return array Modified comment form arguments. */ public function filter_comment_form_defaults( array $args ): array { if ( ! get_comments_number() ) { $args['title_reply_before'] = '