На странице «Мои архивы» я перечисляю категории с количеством сообщений. Я изменил счетчик сообщений, удалив круглые скобки, завернув их в диапазон, который плавает вправо, и помещаю слово «Записи» после каждого столбца. Но я хочу, чтобы текст после подсчета изменился для категорий только с одним сообщением (т.е. «Ввод» вместо «Записи»).
Мой текущий код для этого:
<?php $variable = wp_list_categories('title_li=&echo=0&show_count=1'); $variable = str_replace( '(', '<span class="cat-count">', $variable); $variable = str_replace( ')', ' Entries</span>', $variable); echo $variable; ?>
Как я могу изменить это, чтобы категории с 1 сообщением говорили «1 Entry» и те, у кого больше 1, сказали «X Entries»?
Вы можете увидеть мою страницу архивов здесь
Функция _n()
будет сортировать сингл из множественного числа. Как его использовать в кодексе .
EDIT: Извинения. Мой первый ответ на вопрос был не совсем достаточным, чтобы доставить вас туда. Проблема с использованием wp_list_categories()
в этом контексте заключается в том, что он печатает предварительно форматированный HTML, и вы не получаете никакого значения, которое вы можете использовать для подсчета $.
Вместо этого попробуйте использовать get_categories()
который вернет массив объектов категории, к которым вы можете подключиться, чтобы получать сообщения и отображать соответственно.
Что-то вроде следующего должно сделать трюк или, по крайней мере, начать:
<?php $categories = get_categories(); echo '<ul>'; foreach($categories as $category) { echo '<li><span class="cat-count"><a href="' . get_category_link( $category->term_id ) . '">' . $category->name.'</a>'; echo ' ' . $category->count . _n(' Entry', ' Entries', $category->count ) . '</span></li>'; } echo '</ul>'; ?>