• добрый вечер! поставил плагин для показа коливества просмотров записи, теперь пытаюсь привязать к числу склоненное слово «просмотры».
    вот что у меня прописано:

    functions.php

    function plural_form($number, $after) {
        $cases = array (2, 0, 1, 1, 1, 2);
        echo $number.' '.$after[ ($number%100>4 && $number%100<20)? 2: $cases[min($number%10, 5)] ];
    }

    в месте вывода кол-ва просмотров:
    <?php plural_form ( the_views(), array('просмотр','просмотра','просмотров') ); ?>

    после первого прописывания все вроде заработало. теперь он показывает только «просмотров», при любом числовом раскладе. думаю, это из-за обновления WP. стояла версия раньше 3,9,1
    пробовал другие варианты, что нашел в нете — такая же ботва..

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    1. В файлах локализации WordPress уже есть формула для множественных чисел, можно использовать её.
    2. Функция the_views() по умолчанию выводит число, а не возвращает. Чтобы возвращала, нужно написать the_views( false ).

    Я бы сделал так:

    function get_plural_form( $number ) {
    	global $l10n;
    
    	$strings     = array_slice( func_get_args(), 1 );
    	$plural_form = $l10n['default']->select_plural_form( $number );
    
    	if ( $plural_form > 2 ) {
    		$plural_form = 0;
    	}
    
    	return $number . ' ' . $strings[ $plural_form ];
    }
    
    ...
    
    echo get_plural_form( (int) the_views( false ), 'просмотр', 'просмотра', 'просмотров' );

    спасибо Вам большое! все заработало как часы!
    честно, просто не учил пхп, но в коде примерно разбираюсь. но, видно, не до конца.

    сейчас пробую туда if вставить, чтобы писал нет просмотров 🙂

Просмотр 2 ответов — с 1 по 2 (всего 2)

Тема «Склонение просмотров.» закрыта для новых ответов.