Добавляем число постов в рубрике в ссылку на эту рубрику.
Опубликовано: 06.09.2018
Настраивая шаблон к одному из своих блогов я столкнулся с небольшой проблемой: вывод числа постов в рубрике переносится на новую строку. Причина понятна: ссылки на рубрики выводятся в css параметром display: block; , что и выкидывает любое другое содержимое на новую строку. Моих любительских знаний в css не хватило, чтобы сходу решить эту проблемку, а на специализированных форумах мне никто не ответил. Просмотрев с десяток шаблонов, где ссылки на рубрики также выводятся в блоках я ни в одном из них не увидел решения своей задачи, в каждом из этих шаблонов число записей в рубрике тоже перескакивает на новую строку. То ли никто не задавался таким вопросом, то ли никто не знает как его решить, не знаю.
Пример Ajax подгрузки постов из рубрик в Wordpress - практический урок, гайд по Ajax
Биться головой об стену в поисках решения ерундовой в общем-то проблемы я не стал, для меня проще оказалось пойти по другому пути: изменением файла движка заставить число постов в записи оказаться частью ссылки на рубрику. Для примера взгляните на сайдбар этого блога - здесь число записей в рубрике как раз является частью ссылки на эту рубрику. Надо сказать, что такое решение проблемы оказалось для меня куда более предпочтительнее, чем просто вывод цифр рядом с ссылкой на рубрику.
Как убрать Автора и Дату записи на любом шаблоне WordPrss - WP Meta and date remover
Чтобы аналогичным способом выводить число записей в рубриках вам надо отредактировать файл wp-includes\classes.php следующим образом:
Найдите строчку:
1336 | $link .= $cat_name . '</a>' ; |
$link .= $cat_name . '</a>';
И замените ее на:
1336 1337 1338 1339 1340 | if ( isset ( $show_count ) && $show_count ) { $link .= $cat_name . '' ; $link .= ' (' . intval ( $category -> count ) . ')</a>' ; } else $link .= $cat_name . '</a>' ; |
if ( isset($show_count) && $show_count ){ $link .= $cat_name . ''; $link .= ' (' . intval($category->count) . ')</a>';} else $link .= $cat_name . '</a>';
Теперь находим и удаляем эти строки:
1370 1371 | if ( isset ( $show_count ) && $show_count ) $link .= ' (' . intval ( $category -> count ) . ')' ; |
if ( isset($show_count) && $show_count ) $link .= ' (' . intval($category->count) . ')';
Теперь при выводе числа постов в рубрике (параметр &show_count=1 в функции wp_list_categories ) это число станет частью ссылки на рубрику:
Вариант с изменением файла WordPress хорош тем, что тут можно задать каким образом будет показано число постов. Вы, например, можете взять его в квадратные скобки, такого выбора при обычном выводе у вас нет. С другой стороны недостатком является необходимость редактировать этот файл при каждом апдейте движка.
Способ 2 . Нашел способ решить изложенную проблему, не редактируя файл движка. Для этого используйте следующий код вывода рубрик:
<?php $mycats = wp_list_categories ( 'show_count=1&title_li=&echo=0' ) ; $mycats = str_replace ( array ( '</a>' , ')' ) , array ( '' , ')</a>' ) , $mycats ) ; echo $mycats ; ?> |
<?php $mycats = wp_list_categories('show_count=1&title_li=&echo=0'); $mycats = str_replace(array('</a>',')'), array('',')</a>'), $mycats); echo $mycats; ?>
Этот способ применим не только к функции wp_list_categories , но к wp_list_authors , [[wp_get_archives]] и другим функциям, выводящим число записей.