HEX
Server: Apache/2.4.59 (Debian)
System: Linux skycube.cz 4.19.0-25-amd64 #1 SMP Debian 4.19.289-2 (2023-08-08) x86_64
User: ilya (534)
PHP: 7.3.31-1~deb10u7
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/ilya/data/www/notes.rudomilov.ru/wp-content/plugins/russify_comments_number.php
<?php
/*
Plugin Name: Russify Comments Number
Plugin URI: http://ulizko.com/russify_comments_number
Description: Нормальное отображение окончания слова "комментарий" - то есть, "2 комментария", "5 комментариев" и так далее.
Version: 0.1
Author: Alexander Ulizko
Author URI: http://ulizko.com
*/

function russify_comments_number($zero = false, $one = false, $more = false, $deprecated = '') {
	global $id;
	$number = get_comments_number($id);
	
	if ($number == 0) {
		$output = 'Комментариев нет';
	} elseif ($number == 1) {
		$output = 'Один комментарий';
	} elseif (($number > 20) && (($number % 10) == 1)) {
		$output = str_replace('%', $number, '% комментарий');
	} elseif ((($number >= 2) && ($number <= 4)) || ((($number % 10) >= 2) && (($number % 10) <= 4)) && ($number > 20)) {
		$output = str_replace('%', $number, '% комментария');
	} else {
		$output = str_replace('%', $number, '% комментариев');
	}
	echo apply_filters('russify_comments_number', $output, $number);
}

add_filter('comments_number', 'russify_comments_number');
	
?>