WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

comments_popup_link() WP 0.71

Выводит готовую <a> ссылку на всплывающее окно комментариев, работает при использовании скрипта comments_popup_script().

Если нужный скрипт не вызывается, то будет выведена простая ссылка на комментарии записи, см comments_link().

Как будет выглядеть всплывающее окно определяется файлом шаблона: comments-popup.php.

Этот Тег шаблона должен быть внутри Цикла WordPress или цикла комментариев.

Функция ничего не выводит, если отображаются отдельные страницы записей: is_single() или is_page().

1 раз = 0.008033с = очень медленно | 50000 раз = 13.64с = медленно | PHP 7.1.5, WP 4.8.2
Хуки из функции
Возвращает

html код ссылки.

Использование

comments_popup_link( $zero, $one, $more, $css_class, $none);
$zero(строка)
Текст для показа, когда нет комментариев.
По умолчанию: 'Нет комментариев'
$one(строка)
Текст для показа, если 1 комментарий.
По умолчанию: '1 комментарий'
$more(строка)
Текст для показа, если более одного комментария.
По умолчанию: '%1$s комментариев'
$css_class(строка)
Название css класса для ссылки. По умолчанию класс не задается.
По умолчанию: ''
$none(строка)
Текст для показа, если у записи комментирование отключено.
По умолчанию: 'Комментирование отключено'

Примеры

#1. Вывод ссылки на всплывающее окно комментирования на страницах архивов.

Нужно чтобы можно было комментировать статью не переходя к самой статье:

<?php comments_popup_script(); ?>
<p><?php comments_popup_link(); ?></p>

получим:

<script type='text/javascript'>
function wpopen (macagna) {
	window.open(macagna, '_blank', 'width=400,height=400,scrollbars=yes,status=yes');
}
</script>
<a href="/?comments_popup=19" onclick="wpopen(this.href); return false" title="Комментарий к записи Название статью">Комментариев нет</a>

#2. Как не показывать ссылку на всплывающее окно комментирования, когда комментарии закрыты:

<?php
if( comments_open() ){
	comments_popup_link( 'Комментариев пока нет', '1 комментарий', '% комментариев', 'с_link' );
}
?>

Список изменений

С версии 0.71 Введена.

Код comments_popup_link() WP 5.5.1

wp-includes/comment-template.php
<?php
function comments_popup_link( $zero = false, $one = false, $more = false, $css_class = '', $none = false ) {
	$post_id    = get_the_ID();
	$post_title = get_the_title();
	$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>', $number );
		$more = sprintf( $more, number_format_i18n( $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 == $number && ! comments_open() && ! pings_open() ) {
		echo '<span' . ( ( ! empty( $css_class ) ) ? ' class="' . esc_attr( $css_class ) . '"' : '' ) . '>' . $none . '</span>';
		return;
	}

	if ( post_password_required() ) {
		_e( 'Enter your password to view comments.' );
		return;
	}

	echo '<a href="';
	if ( 0 == $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.
		 */
		echo apply_filters( 'respond_link', $respond_link, $post_id );
	} else {
		comments_link();
	}
	echo '"';

	if ( ! empty( $css_class ) ) {
		echo ' class="' . $css_class . '" ';
	}

	$attributes = '';
	/**
	 * Filters the comments link attributes for display.
	 *
	 * @since 2.5.0
	 *
	 * @param string $attributes The comments link attributes. Default empty.
	 */
	echo apply_filters( 'comments_popup_link_attributes', $attributes );

	echo '>';
	comments_number( $zero, $one, $more );
	echo '</a>';
}

Cвязанные функции

Из раздела: Комментарии

Еще из тегов шаблона: Комментарии

14 комментов
Полезные 2 Все