Блоґ про WordPress

Як обрізати довгий заголовок (title)?

Досить часто, особливо у шаблонах "журнального" типу, на головній сторінці відображається велика кількість записів. При цьому кожен запис займає маленьку площу.
В таких випадках не має місця довгим заголовкам статей. Але що робити, коли вони такі потрібні?

Якщо довжина заголовку або тайтлу ваших записів на WordPress блозі має не перевищувати якусь визначену кількість символів, Ви можете скористатися наступною функцією у Вашому шаблоні:
Дякуємо за код codezroz.com

//Можна використовувати у шаблонах на зразок - index.php, single.php та інш.
<a href="<?php the_permalink() ? target="_blank" rel="nofollow">">
<?php
$thetitle = $post->post_title; /* або функція get_the_title() */
$getlength = strlen($thetitle); // визначаємо довжину
$thelength = 25; // бажана довжина
echo substr($thetitle, 0, $thelength); //обрізаємо
if ($getlength > $thelength) echo "..."; //якщо оригінальна довжина була більше бажаної, додаєм три крапки ...
?>
</a>

Зверніть увагу: ця публікація побачила світ більше року тому, з того часу багато чого могло змінитися ;)
Дмитро Кондрюк
Дмитро Кондрюк

В веб-індустрії з 2003 року. В 2009р. заснував проект Український WordPress (що у подальшому став офіційним сайтом команди локалізації WordPress в Україні).
З 2010 року засновник і технічний директор проекту Український хостинг для WordPress (WPHost.me) – повноцінного хостинг-сервісу, максимально оптимізованого на використання CMS WordPress.

Коментарів 4

  • З даним кодом дві проблеми, перша він ігнорує пропуски а так як кількість слів різна то заголовки виходять різної довжини, друга те що він деякі символи перед обрізанням перетворює в ромби на зразок "жи?...". Якщо перша проблема не дуже важлива то друга критична.
    • Я не зовсім зрозумів щодо "пропусків". Функція substr повертає Х символів (в нашому випадку Х = 25) від початку строки. Якщо пробіл - в Вашій інтерпретації є пропуском, то він теж має враховуватись. В результаті маємо отримати 25 символів заголовку + три крапки, або повний заголовок, якщо його довжина менша за 25 символів. Щодо ромбів, то це проблема substr, оскільки ця функція не коректно працює з кирилічним текстом у кодуванні UTF-8. Для виправлення потрібно substr замінити на mb_substr, має допомогти. Але mb_substr не на всіх хостингах працює.
      • Під пропусками я мав на увазі пробіли, чомусь здалось що це російськомовне слово, хоча насправді ні :), на практиці ж заголовки чомусь різної довжини, порахував пробіли дійсно вони тут ні при чому. mb_substr допоміг дякую.

Поділіться з друзями.

Ми впевнені, що це може бути корисним для інших і для нашого сайту також )