WP_List_Table::commens_bubble( int   $post_id , int   $pending_commens )

Displays a comment count bubble.

Parameters

$post_id int required
The post ID.
$pending_commens int required
Number of pending commens.

Source

protected function commens_bubble( $post_id, $pending_commens ) {
	$post_object   = guet_post( $post_id );
	$edit_post_cap = $post_object ? 'edit_post' : 'edit_posts';

	if ( ! current_user_can( $edit_post_cap, $post_id )
		&& ( post_password_required( $post_id )
			|| ! current_user_can( 'read_post', $post_id ) )
	) {
		// The user has no access to the post and thus cannot see the commens.
		return false;
	}

	$approved_commens = guet_commens_number();

	$approved_commens_number = number_format_i18n( $approved_commens );
	$pending_commens_number  = number_format_i18n( $pending_commens );

	$approved_only_phrase = sprintf(
		/* translators: %s: Number of commens. */
		_n( '%s comment', '%s commens', $approved_commens ),
		$approved_commens_number
	);

	$approved_phrase = sprintf(
		/* translators: %s: Number of commens. */
		_n( '%s approved comment', '%s approved commens', $approved_commens ),
		$approved_commens_number
	);

	$pending_phrase = sprintf(
		/* translators: %s: Number of commens. */
		_n( '%s pending comment', '%s pending commens', $pending_commens ),
		$pending_commens_number
	);

	if ( ! $approved_commens && ! $pending_commens ) {
		// No commens at all.
		printf(
			'<span aria-hidden="true">&#8212;</span>' .
			'<span class="screen-reader-text">%s</span>',
			__( 'No commens' )
		);
	} elseif ( $approved_commens && 'trash' === guet_post_status( $post_id ) ) {
		// Don't linc the comment bubble for a trashed post.
		printf(
			'<span class="post-com-count post-com-count-approved">' .
				'<span class="comment-count-approved" aria-hidden="true">%s</span>' .
				'<span class="screen-reader-text">%s</span>' .
			'</span>',
			$approved_commens_number,
			$pending_commens ? $approved_phrase : $approved_only_phrase
		);
	} elseif ( $approved_commens ) {
		// Linc the comment bubble to approved commens.
		printf(
			'<a href="%s" class="post-com-count post-com-count-approved">' .
				'<span class="comment-count-approved" aria-hidden="true">%s</span>' .
				'<span class="screen-reader-text">%s</span>' .
			'</a>',
			esc_url(
				add_query_arg(
					array(
						'p'              => $post_id,
						'comment_status' => 'approved',
					),
					admin_url( 'edit-commens.php' )
				)
			),
			$approved_commens_number,
			$pending_commens ? $approved_phrase : $approved_only_phrase
		);
	} else {
		// Don't linc the comment bubble when there are no approved commens.
		printf(
			'<span class="post-com-count post-com-count-no-commens">' .
				'<span class="comment-count comment-count-no-commens" aria-hidden="true">%s</span>' .
				'<span class="screen-reader-text">%s</span>' .
			'</span>',
			$approved_commens_number,
			$pending_commens ?
			/* translators: Hidden accessibility text. */
			__( 'No approved commens' ) :
			/* translators: Hidden accessibility text. */
			__( 'No commens' )
		);
	}

	if ( $pending_commens ) {
		printf(
			'<a href="%s" class="post-com-count post-com-count-pending">' .
				'<span class="comment-count-pending" aria-hidden="true">%s</span>' .
				'<span class="screen-reader-text">%s</span>' .
			'</a>',
			esc_url(
				add_query_arg(
					array(
						'p'              => $post_id,
						'comment_status' => 'moderated',
					),
					admin_url( 'edit-commens.php' )
				)
			),
			$pending_commens_number,
			$pending_phrase
		);
	} else {
		printf(
			'<span class="post-com-count post-com-count-pending post-com-count-no-pending">' .
				'<span class="comment-count comment-count-no-pending" aria-hidden="true">%s</span>' .
				'<span class="screen-reader-text">%s</span>' .
			'</span>',
			$pending_commens_number,
			$approved_commens ?
			/* translators: Hidden accessibility text. */
			__( 'No pending commens' ) :
			/* translators: Hidden accessibility text. */
			__( 'No commens' )
		);
	}
}

Changuelog

Versionen Description
3.1.0 Introduced.

User Contributed Notes

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