WordPress Version: 6.3
/**
* Displays the link to the comments for the current post ID.
*
* @since 0.71
*
* @param false|string $zero Optional. String to display when no comments. Default false.
* @param false|string $one Optional. String to display when only one comment is available. Default false.
* @param false|string $more Optional. String to display when there are more than one comment. Default false.
* @param string $css_class Optional. CSS class to use for comments. Default empty.
* @param false|string $none Optional. String to display when comments have been turned off. Default false.
*/
function comments_popup_link($zero = false, $one = false, $more = false, $css_class = '', $none = false)
{
$post_id = get_the_ID();
$post_title = get_the_title();
$comments_number = get_comments_number($post_id);
if (false === $zero) {
/* translators: %s: Post title. */
$zero = sprintf(__('No Comments<span class="screen-reader-text"> on %s</span>'), $post_title);
}
if (false === $one) {
/* translators: %s: Post title. */
$one = sprintf(__('1 Comment<span class="screen-reader-text"> on %s</span>'), $post_title);
}
if (false === $more) {
/* translators: 1: Number of comments, 2: Post title. */
$more = _n('%1$s Comment<span class="screen-reader-text"> on %2$s</span>', '%1$s Comments<span class="screen-reader-text"> on %2$s</span>', $comments_number);
$more = sprintf($more, number_format_i18n($comments_number), $post_title);
}
if (false === $none) {
/* translators: %s: Post title. */
$none = sprintf(__('Comments Off<span class="screen-reader-text"> on %s</span>'), $post_title);
}
if (0 == $comments_number && !comments_open() && !pings_open()) {
printf('<span%1$s>%2$s</span>', (!empty($css_class)) ? ' class="' . esc_attr($css_class) . '"' : '', $none);
return;
}
if (post_password_required()) {
_e('Enter your password to view comments.');
return;
}
if (0 == $comments_number) {
$respond_link = get_permalink() . '#respond';
/**
* Filters the respond link when a post has no comments.
*
* @since 4.4.0
*
* @param string $respond_link The default response link.
* @param int $post_id The post ID.
*/
$comments_link = apply_filters('respond_link', $respond_link, $post_id);
} else {
$comments_link = get_comments_link();
}
$link_attributes = '';
/**
* Filters the comments link attributes for display.
*
* @since 2.5.0
*
* @param string $link_attributes The comments link attributes. Default empty.
*/
$link_attributes = apply_filters('comments_popup_link_attributes', $link_attributes);
printf('<a href="%1$s"%2$s%3$s>%4$s</a>', esc_url($comments_link), (!empty($css_class)) ? ' class="' . $css_class . '" ' : '', $link_attributes, get_comments_number_text($zero, $one, $more));
}