Иногда бывают такие блоги, в которых названия постов выходят слишком длинными, и, если дизайн не позволяет расставить дополнительные переносы, в итоге они не вмещаются в те размеры, которые отведены — выходят за рамки блога. Согласен, смотрится это ужасно, и ситуацию нужно исправлять.
Ну чтож, исправлять — так исправлять. Для этого нужно создать функцию, которая будет автоматически обрезать название поста, если оно длиннее, чем максимально допустимое количество символов. Для этого откройте файл functions.php и вставьте в него такой код:
function the_title2($before = '', $after = '', $echo = true, $length = false) { $title = get_the_title(); if ( $length && is_numeric($length) ) { $title = mb_substr( $title, 0, $length,'UTF-8'); } if ( strlen($title)> 0 ) { $title = apply_filters('the_title2', $before . $title . $after, $before, $after); if ( $echo ) echo $title; else return $title; } if (!function_exists('mb_substr')) { function mb_substr($str,$from,$len){ return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'. $from .'}'.'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'. $len .'}).*#s','$1', $str); } } }
Этот код вводит ограничение на длину заголовка поста — он обрезается до нужной длины. Теперь осталось использовать его. В тех файлах, где это нужно (index.php, single.php, archive.php, search.php) нужно найти участок кода, который отвечает за отображение заголовка поста. Обычно это делается с помощью функции
<?php the_title(); ?>
Вот эту функцию нам и нужно заменить только что созданной:
<?php the_title2('', '...', true, '100') ?>
Обратите внимание: 100 — это максимально допустимое количество символов, и если название будет превышать его, то все, что выходит за рамки, будет заменено на …
Экспериментируйте!
P.S. Возможно, что в представленном коде нужно будет удалить #038;