get_comment_text( int|WP_Comment $comment_id, array $args = array() ): string

Retrieves the text of the current comment.

Description

See also

Parameters

$comment_idint|WP_Commentoptional
WP_Comment or ID of the comment for which to get the text.
Default current comment.
$argsarrayoptional
An array of arguments.

Default:array()

Return

string The comment content.

Source

function get_comment_text( $comment_id = 0, $args = array() ) {
	$comment = get_comment( $comment_id );

	$comment_text = $comment->comment_content;

	if ( is_comment_feed() && $comment->comment_parent ) {
		$parent = get_comment( $comment->comment_parent );
		if ( $parent ) {
			$parent_link = esc_url( get_comment_link( $parent ) );
			$name        = get_comment_author( $parent );

			$comment_text = sprintf(
				/* translators: %s: Comment link. */
				ent2ncr( __( 'In reply to %s.' ) ),
				'<a href="' . $parent_link . '">' . $name . '</a>'
			) . "\n\n" . $comment_text;
		}
	}

	/**
	 * Filters the text of a comment.
	 *
	 * @since 1.5.0
	 *
	 * @see Walker_Comment::comment()
	 *
	 * @param string     $comment_text Text of the comment.
	 * @param WP_Comment $comment      The comment object.
	 * @param array      $args         An array of arguments.
	 */
	return apply_filters( 'get_comment_text', $comment_text, $comment, $args );
}

Hooks

apply_filters( ‘get_comment_text’, string $comment_text, WP_Comment $comment, array $args )

Filters the text of a comment.

Changelog

VersionDescription
5.4.0Added ‘In reply to %s.’ prefix to child comments in comments feed.
4.4.0Added the ability for $comment_id to also accept a WP_Comment object.
1.5.0Introduced.

User Contributed Notes

  1. Skip to note 4 content

    Change comment texts of specific comments

    /**
     * For comments with ID 723 or 15
     */
    add_filter( 'get_comment_text', 'wpdocs_comment', 10, 2 );
    
    function wpdocs_comment( $text_content, WP_Comment $com ) {
        if ( ! is_admin() && in_array( $com->comment_ID, array( 723, 15 ) ) ) {
            $text_content = __( 'You\'ve Just Been Erased!' );
        }
    
        return $text_content;
    }
  2. Skip to note 5 content

    Here are the accepted arguments (not verified/tested) of the $args parameter for the get_comment_text() function:

    format‘ – Specifies the format of the comment text. The accepted values are ‘html’ (default) or ‘plain’.

    short_ping‘ – Specifies whether to display the comment text as a “pingback” or “trackback” instead of a regular comment. The accepted values are true or false.

    avatar_size‘ – Specifies the size of the avatar image displayed with the comment text. The accepted values are integers representing the avatar size in pixels.

    callback‘ – Specifies a callback function to use to display the comment text. This allows for custom formatting of the comment text.

    end-callback‘ – Specifies a callback function to use to display the closing HTML tags after the comment text. This is used in conjunction with the ‘callback’ argument.

    type‘ – Specifies the type of comment to display. The accepted values are ‘comment’, ‘pingback’, or ‘trackback’.

    reply_text‘ – Specifies the text to use for the “Reply” link for threaded comments. The default value is ‘Reply’.

    max_depth‘ – Specifies the maximum depth of threaded comments to display. The default value is 0, which means all levels of threaded comments will be displayed.

    echo‘ – Specifies whether to output the comment text immediately (true) or return it as a string (false). The default value is true.

    Note that not all arguments are accepted by all WordPress versions.

    P.S. Tested ‘max_depth’ in WP 6.2, not worked.

    $args = array( 'max_depth' => 1 ); // limit comments to one level deep
    $parent_comment = get_comment_text( $comment->comment_parent, $args );

You must log in before being able to contribute a note or feedback.