WordPress Россия

Добавляем число постов в рубрике в ссылку на эту рубрику.

Добавлено 11 января 2010 в категорию Плагины.

Настраивая шаблон к одному из своих блогов я столкнулся с небольшой проблемой: вывод числа постов в рубрике переносится на новую строку. Причина понятна: ссылки на рубрики выводятся в css параметром display: block;, что и выкидывает любое другое содержимое на новую строку. Моих любительских знаний в css не хватило, чтобы сходу решить эту проблемку, а на специализированных форумах мне никто не ответил. Просмотрев с десяток шаблонов, где ссылки на рубрики также выводятся в блоках я ни в одном из них не увидел решения своей задачи, в каждом из этих шаблонов число записей в рубрике тоже перескакивает на новую строку. То ли никто не задавался таким вопросом, то ли никто не знает как его решить, не знаю.

Биться головой об стену в поисках решения ерундовой в общем-то проблемы я не стал, для меня проще оказалось пойти по другому пути: изменением файла движка заставить число постов в записи оказаться частью ссылки на рубрику. Для примера взгляните на сайдбар этого блога – здесь число записей в рубрике как раз является частью ссылки на эту рубрику. Надо сказать, что такое решение проблемы оказалось для меня куда более предпочтительнее, чем просто вывод цифр рядом с ссылкой на рубрику.

Чтобы аналогичным способом выводить число записей в рубриках вам надо отредактировать файл wp-includesclasses.php следующим образом:

Найдите строчку:

1336
$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>';

Теперь находим и удаляем эти строки:

1370
1371
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;
?>

Этот способ применим не только к функции wp_list_categories, но к wp_list_authors, [[wp_get_archives]] и другим функциям, выводящим число записей.

Категории