Иногда слишком длинные названия постов и страниц только вредят – в блога с фиксированной шириной они могут испортить всю красоту, особенно там, где дизайном не предусмотрены многострочные названия. Поэтому иногда лучше такие названия обрезать. И для этого не обязательно прибегать к плагинам – это можно сделать самостоятельно.
1. Первым делом для решения этой задачи создадим специальный фильтр, который берет название поста или страницы, считает в нем символы, и после нужного количества обрезает его. Откроем файл functions.php, и добавим в него такой код:
function short_title($char) { $title = get_the_title($post->ID); $title = substr($title,0,$char); echo $title; }
2. После этого остается заменить вывод названия постов с помощью функции
</pre> <p> новой функцией </p> <pre>
, где 50 – это количество символов, которым измеряется новый заголовок.
Не так уж и сложно, правда?
P.S. Профессионалы подсказывают, что в коде лучше использовать не subdts, а mb_substr.

в ф-ции необходимо еще объявить глобальную переменную $post или убрать $post->ID
сейчас работает потому-что внутри the_loop находится
ну и да, мб_субстр предпочтительней, ибо будут ломаться буквы иногда
Я бы лучше сверстал так, чтобы длинные заголовки хорошо смотрелись с переносом строки. Иначе зачем вообще длинные заголовки писать?
Хотя, есть один вариант применения этого — если хочется при выводе нескольких записей однострочные заголовки, а внутри записей уже не экономить пространство.
Совершенно верно. Или же выводить заголовки постов в сайдбаре с ограниченной шириной.
Точно, сайдбар же… Хорошо. Добавь вывод из этих двух комментариев в запись тогда уж, наверное.
И тут тоже код пропал :( У вас на всем блоге вместо кода выводится строка
А как при этом ссылку сохранить? Если заголовок является ссылкой на полную статью, при обрезке заголовка ссылка пропадает.
Как бы сохранить ссылку?