Поддержка Проблемы и решения Проблема с шорткодом

  • Добрый вечер.
    Есть функция склонения слов после числительных:

    ———————————————————

    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(
    get_comments_number(),
    /* варианты написания для количества 1, 2 и 5 */
    array('комментарий','комментария','комментариев')
    );
    ?>

    ———————————————————
    Хотелось бы преобразовать в вордпресовский шорткод
    У меня есть шорткод, который выводит количество записей в категории:

    /* Шорткод кол-ва записей */
    function kol_zap($atts) {
    extract(shortcode_atts(array(
    "id" => ''
    ), $atts));
    $post_count = get_category($id)->category_count;
    $cat_name = get_category($id)->name;
    $cat_slug = get_category($id)->slug;
    return ''.$post_count.'';
    }
    add_shortcode('kolvo', 'kol_zap');

    Нужно, чтобы этот шорткод выводил после числа — слово запись(‘и’, ‘ей’).

    Заранее спасибо.

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Добрый.

    Так?

    function kol_zap($atts) {
        extract(shortcode_atts(array(
        "id" => ''
        ), $atts));
    
        $post_count = get_category($id)->category_count;
        $cat_name = get_category($id)->name;
        $cat_slug = get_category($id)->slug;
    
        $cases = array (2, 0, 1, 1, 1, 2);
        $after = array('запись','записи','записей');
    
        return $post_count . ' ' . $after[ ($post_count%100>4 && $post_count%100<20)? 2: $cases[min($post_count%10, 5)] ];
    }
    add_shortcode('kolvo', 'kol_zap');

    Дружище, просто ОГРОМЕННОЕ СПАСИБО!!! Выручил!

    дык это уже нельзя будет перевести.

    Куда перевести и зачем?)

    на другой язык.
    это, конечно, не имеет значения, если решение нужно сугубо для себя.

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Проблема с шорткодом» закрыта для новых ответов.