Як зробити

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

Pinterest LinkedIn Tumblr

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

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

<?php
//Можна використовувати у шаблонах на зразок - index.php, single.php та інш. 
?>
<a href="<?php the_permalink(); ?> target=" 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>
Code language: HTML, XML (xml)

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

коментарі 4

  1. З даним кодом дві проблеми, перша він ігнорує пропуски а так як кількість слів різна то заголовки виходять різної довжини, друга те що він деякі символи перед обрізанням перетворює в ромби на зразок \”жи?…\”. Якщо перша проблема не дуже важлива то друга критична.

    • Я не зовсім зрозумів щодо \”пропусків\”. Функція substr повертає Х символів (в нашому випадку Х = 25) від початку строки. Якщо пробіл – в Вашій інтерпретації є пропуском, то він теж має враховуватись. В результаті маємо отримати 25 символів заголовку + три крапки, або повний заголовок, якщо його довжина менша за 25 символів.

      Щодо ромбів, то це проблема substr, оскільки ця функція не коректно працює з кирилічним текстом у кодуванні UTF-8. Для виправлення потрібно substr замінити на mb_substr, має допомогти. Але mb_substr не на всіх хостингах працює.

      • Під пропусками я мав на увазі пробіли, чомусь здалось що це російськомовне слово, хоча насправді ні :), на практиці ж заголовки чомусь різної довжини, порахував пробіли дійсно вони тут ні при чому. mb_substr допоміг дякую.

        • Ілюзію можуть створювати різні розміри літер. тобто, якщо Ви створите два заголовки, один з 10 літер \”і\”, інший з 10 літер \”ж\”, то візуально вони будуть різної довжини

Коментувати